Meine Suche bei Google hatte mal wieder keinen vernünftigen Treffer gelandet, das Problem – ich möchte die Kennwort History für einen Benutzer löschen.
Nach etwas Suchen und Probieren habe ich folgende Lösung gebaut (user_pw-clear-histroy.sh):
#!/bin/bash if [ ! "$1" ]; then echo "Bitte Username angeben!" exit fi DN=$(samba-tool user show $1|head -1) TEMPFILE=$(mktemp) echo -e -n "$DN\nchangetype: modify\ndelete: ntPwdHistory\n" > $TEMPFILE ldbmodify -H /var/lib/samba/private/sam.ldb.d/DC\=AD\,DC\=MYDOMAIN\,DC\=LOCAL.ldb $TEMPFILE rm $TEMPFILE echo "Password history cleared!"
Das Script geht ganz einfach her und übernimmt den übergebenen Benutzernamen, bastelt eine ldif Datei zum verändern der SAM-Datenbank des Samba-AD’s und spielt diese mit ldbmodify dort ein.
Anschließend verschwindet der Eintrag ntPwdHistory des Users aus der ldb Datei und schon kann der Benutzer ein bereits benutztes Kennwort erneut verwenden.
Ihr findet die passende ldb Datei für euer AD gewöhnlich im Verzeichnis /var/lib/samba/private/sam.ldb.d/ – diese muss im Script natürlich angepasst werden, es sei denn ihr verwendet AD.MYDOMAIN.LOCAL als AD Namen 🙂