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