• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Deaktivierung eines openLDAP-Accounts

rolle

Guru
Liebe Leute!

Ich habe hier meine Nutzerverwaltung auf openLDAP am Laufen. Nun möchte ich alte Accounts deaktivieren, jedoch noch nicht löschen. Als Zielsysteme habe ich hauptsächlich PAM, samba und apache2. Ich kann jetzt zwar den Sambaaccount deaktivieren und /bin/false als shell setzen, jedoch kann ich SCP, SFTP und apache2 damit nicht verunmöglichen. Gibt es ein Flag oder so etwas, den man setzen kann, um einen Account zu erhalten aber als nicht nutzbar zu markieren? So daß dann alle Zielsysteme eine Authentifizierung abweisen?
 

stka

Guru
Das kannst du über die shadow-Parameter realisieren. Setze einfach das Ablaufdatum des Accounts in der Vergangenheit in der /etc/nsswitch.conf muss dann die Zeile für die shadow-Einstellungen so aussehen "shadow files ldap" oder "shadow compat ldap" je nach Distribution. Du kannst diesen Parameter auch im LDAP setzen. Die Parameter für die Shadowverwaltung beginne alle mit "shadow" und commen aus der ObjectClass "shadowAccount". Setze das Attribute "shadowexpire: 0" und alles ist so, wie du es willst.
 
OP
R

rolle

Guru
Dankeschön, das löst das Problem mit den meisten Zugriffe. Für den Apache2 war es etwas komplizierter, da der normalerweise shadow ignoriert. Geholfen hat dann folgender Codeschnipsel in der entsprechenden Hostconfig:
Code:
<RequireAll>
Require valid-user
Require ldap-filter !(shadowexpire=0)
</RequireAll>
Es ist zwar nicht ganz perfekt, weil jetzt zum Abweisen shadowexpire auf exakt 0 stehen muß, aber da muß ich dann halt beim Deaktivieren von Accounts darauf achten.

Vielen lieben Dank.
 
Oben