Sunday, May 18th, 2008...11:58 pm
FAQ #6 Godziny logowania
Jump to Comments
Temat godzin logowania był ostatnio poruszany na forum wss.pl, postanowiłem to zebrać tutaj i podsumować w ramach jednego wpisu dla potomności.
Godziny logowania dla obiektu użytkownika w katalogu Active Directory zdefiniowane są w atrybucie logonHours. Atrybut ten zawiera 168-bitową wartość, która określa godziny logowania użytkownika. Łatwo ją odczytać chociażby z użyciem ADFIND:
adfind -b “CN=Luke Skywalker,OU=VIP,DC=w2k,DC=pl” -s base logonhours
Dlaczego 168 bitów? Prosta matematyka 7dni x 24 godziny = 168. Każdy z bitów odpowiada więc pojedynczej godzinie w ciągu konkretnego dnia tygodnia. Wartość 0 oznacza “denied”, wartość 1 “allow”.
Z powodu takiego zapisu tej wartości, możliwe jest ustawienie godzin logowania tylko w zakresie pełnych godzin (niestety 7:30 czy 16:45 nie jest możliwa do ustawienia).
Wartość logonHours można ustawić oczywiście poprzez interfejs ADu&C czy też inne graficzne narzędzie. Z poziomu linii poleceń można skorzystać chociażby z ADMOD:
adfind -b “CN=Luke Skywalker,OU=VIP,DC=w2k,DC=pl” bin##logonhours::”0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 01″
Wartość atrybutu składa się z 7 sekwencji po 3 bajty, czyli 7 sekwencji po 24 bity. Najbardziej znaczące bity opisują godziny logowania w niedzielę, a ostatnie 24 bity oznaczają godziny logowania w sobotę. W ramach każdej sekwencji bitów najbardziej znaczący bit oznacza 1 godzinę dnia, najmniej znaczący 24 godzinę w ciągu dnia:
11100000 11111111 00000001 <- ostatnia godzina
^ - 1 godzina
W ten sposób możliwe jest wyliczenie wartości dla logon hours. Po ustaleniu maski bitowej, należy przeliczyć ją na odpowiednią wartości i użyć admod
Wartość jaką należy zapisać w tym atrybucie najłatwiej po prostu wyklikać dla wzorcowego użytkownika, a następnie odczytać z katalogu i użyć do ustawienia jej dla wszystkich innych użytkowników, dla których chcemy zadany zakres godzin logowania ustawić. To taka porada praktyczna :).
Uaktualnienie: Ponieważ zgłoszone zostało zapotrzebowanie społeczne opisałem jak jest tworzona wartość dla logonHours.

Leave a Reply