ldap zwingt den Benutzer, das Passwort zu ändern

7

Ich verwende CentOS-ds (basierend auf Redhat-DS- und 389-Verzeichnisservern).

Ich habe LDAP-Setup und arbeite daran, Benutzer zu authentifizieren (und Sudo, das ist eine praktische Funktion!). Sogar passwd funktioniert hervorragend, um in Ldap gespeicherte Passwörter zu ändern. Ich habe jedoch ein kleines Problem. Wie kann ich alle meine Benutzerkonten zwingen, nach der Anmeldung am Server ein neues Kennwort zu erstellen? Normalerweise würde ich das so machen:

chage -d 0 username

scheint nicht "ldap-ified" zu sein. Wie kann ich die Benutzer zwingen, bei ihrem nächsten (ssh) Login neue Passwörter zu erstellen? Ich muss Benutzerkonten erstellen, und ich möchte wirklich nicht, dass Leute die Passwörter behalten, die ich für sie festgelegt habe.

* edit - Ich habe den LDAP-Server so eingestellt, dass beim Zurücksetzen des Kennworts eine Kennwortänderung erzwungen wird. Ich kann jedoch anscheinend keine Möglichkeit finden, das Passwort auf die richtige Weise zurückzusetzen, um dies auszulösen. (Ich kann mich nur als Directory Manager anmelden und das Kennwort ändern.) * edit2. Da wir viele Computer auf LDAP verschieben werden, sobald dieser Teil herausgefunden ist, habe ich ein Skript geschrieben, das als Root ausgeführt wird, um die LDAP-Authentifizierung einzurichten. Vielleicht fehlt mir hier etwas? (Server herausgearbeitet und basiert.)

#!/bin/sh
#
authconfig --enableldap --enableldapauth --enablemkhomedir --ldapserver=<server1>,<server2> --ldapbasedn="<basedn>" --update
echo 'sudoers:    files ldap' >> /etc/nsswitch.conf
echo 'base <basedn>
timelimit 120
bind_policy soft
bind_timelimit 120
idle_timelimit 3600
uri ldap://<server1>/  
uri ldap://<server2>/
ssl no
tls_cacertdir /etc/openldap/cacerts 
pam_password md5
sudoers_base    ou=SUDOers,<basedn>
' > /etc/ldap.conf
Brian
quelle

Antworten:

4

Ich habe eine Lösung gefunden: Legen Sie im LDAP-Eintrag ShadowLastChange = 0des Benutzers fest, dass der Benutzer sein LDAP-Kennwort zurücksetzen muss. Es gibt jedoch auch einen anderen Fehler: Sie müssen dann die Berechtigungen (ACLs) auf dem LDAP-Server ändern (ich hatte die Standardberechtigung für Allow Self entry modificationOU = People), damit sie auch das Ziel ändern können ShadownLastChange.

Andernfalls können sie den Wert nicht ändern und er bleibt bei Null, sodass sie jedes Mal, wenn sie sich anmelden, ihr Kennwort wiederholen müssen.

Brian
quelle
1
In welcher Datei nehme ich diese Änderungen vor?
Steven C. Howell
0

Versuchen Sie das Attribut passwordMustChange

Wenn dieses Attribut aktiviert ist, müssen Benutzer ihre Kennwörter ändern, wenn sie sich zum ersten Mal im Verzeichnis anmelden oder nachdem das Kennwort vom Verzeichnismanager zurückgesetzt wurde. Der Benutzer muss sein Kennwort ändern, auch wenn benutzerdefinierte Kennwörter deaktiviert sind. Wenn dieses Attribut deaktiviert ist, sollten die vom Verzeichnismanager zugewiesenen Kennwörter keiner offensichtlichen Konvention entsprechen und schwer zu ermitteln sein. Dieses Attribut ist standardmäßig deaktiviert.

Siehe: - http://www.centos.org/docs/5/html/CDS/ag/8.0/User_Account_Management-Managing_the_Password_Policy.html

Atolani
quelle
0

@Brian Ändern der Shadowlastchange = 0 ist eigentlich eine schlechte Idee. Die meisten LDAP-Clients sind nicht dafür ausgelegt, den Wert von shadowlastchange zu ändern. Sie geraten also in eine Endlosschleife, um das Passwort bei jeder Anmeldung zu ändern.

einige ldap client

nss-pam-ldapd - Diese Funktionalität wurde kürzlich im Upstream-Projekt nss-pam-ldapd hinzugefügt. Protokoll: Versuchen Sie, das shadowLastChange-Attribut eines Benutzers bei Kennwortänderung zu aktualisieren (die Aktualisierung wird nur versucht, wenn das Attribut zunächst vorhanden ist). http: //lists.arthurdejong.org/nss-pam-ldapd-commits/2010/msg00302.html

sssd -
Immer noch eine RFE https://bugzilla.redhat.com/show_bug.cgi?id=739312

samba-ldap-tools - abgelehnt

Atolani
quelle