Pre tých čo rovnako ako ja. Majú tu smolu že na niektoré firemné webové aplikácie pristupujú pomocou loginu do MS domény, ale ako primárny OS majú linux. Sa často stretnú z problémom ako dostať upozornenie že je čas sa prihlásiť k nejakým MS Windows a zmeniť si heslo.
Na pomoc si vezmeme ldap klienta „ldapsearch“ a MS Dokumentáciu a par informácii od niekoho kto ma prístup k doméne 😉
Potrebujeme vedieť naše prihlasovacie údaje z pohľadu ldapu. Vyzera to asi takto: CN=login,CN=users, DC=domena,DC=com.
1. Zistime aká je politika na doméne. časy sú v ActiveDirectory udávané v 100ns preto výsledok adekvátne vydelíme. Výsledkom je počet dni:
ldapsearch -LLL -s base -H ldap://nas_domenovy_server -b "dc=domena,dc=com" -D "CN=login,CN=users, DC=domena,DC=com"=w "heslo" maxPwdAge | awk -F- '/maxPwdAge/ {print $2/864000000000}'
2. AD obsahuje atribút ktorý nám pomôže zistiť kedy bolo naposledy heslo menené. Ten sa volá PwdLastSet. Z neho zistime kedy bolo heslo nastavene. číslo je počet 100ns od 1.1.1601 preto ho vhodne vydelíme a odčítame
ldapsearch -LLL -H ldap://nas_domenovy_server -b "dc=domena,dc=com" -D "CN=login,CN=users, DC=domena,DC=com"=w "heslo" "(sAMAccountName=Login)" PwdLastSet ) | awk '/pwdLastSet/ {print $2/10000000}'
3. Na záver ešte jednoduchý konvertor aktuálneho času do formátu timestampu používaného v Active Directory
echo $(expr $(date +%s) + 11644473600)0000000
Za týchto údajov už nieje problém zistiť kedy nám heslo vyprší. V sekcii Linux/Unix/SAN -> OpenLdap čoskoro zverejním hotové skripty.