Home-Verzeichnisse und pam.d mit LDAP

10

Hintergrund:
Ich bin mit den Vor- und Nachteilen der Pam- und LDAP-Authentifizierung auf der Konfigurationsseite nicht allzu vertraut. Ich habe Systeme verwendet, die pam verwenden, aber ich habe nur an Anwendungen gearbeitet, nicht an Systemen selbst.

Fragen:
Bedeutet die Verwendung von pam zur Steuerung der Authentifizierung über LDAP, dass auf dem System kein Basisverzeichnis erstellt wird?

Wenn nicht, würde ich Benutzer auf dem Server erstellen oder Benutzer von einer LDAP-Quelle auf das System übertragen?

Nicholas Anderson
quelle
1
Diese Frage könnte verwandt sein: unix.stackexchange.com/q/106391/34796
drs

Antworten:

13

Genau dafür pam_mkhomedirwurde gemacht.
Das pam_mkhomedirModul kann beim Start das Basisverzeichnis des Benutzers erstellen, wenn dieses Verzeichnis nicht vorhanden ist.

Wie Sie es installieren, hängt von Ihrer Distribution ab. Sie müssten es jedoch in eine oder mehrere Dateien einfügen /etc/pam.d.
Zum Beispiel habe ich auf meinem System das, /etc/pam.d/system-loginwas von allen anderen Diensten enthalten ist, die sich anmelden (ssh, gdm usw.).
Ich würde pam_mkhomedir.soin den sessionStapel legen , wie zum Beispiel:

session     optional    pam_loginuid.so
session     required    pam_env.so 
session     optional    pam_lastlog.so 
session     include     system-auth
session     optional    pam_mkhomedir.so # <<< right here
session     optional    pam_ck_connector.so nox11
session     optional    pam_gnome_keyring.so auto_start
session     optional    pam_motd.so motd=/etc/motd

Wo Sie es ablegen, hängt ganz davon ab, was sich sonst noch im Stapel befindet. Sie sollten es jedoch vor alles andere stellen, das möglicherweise das Home-Verzeichnis benötigt.

Siehe man 8 pam_mkhomedirfür die unterstützten Optionen.

Patrick
quelle
Genial. Danke für die Antwort. Unsere Benutzer melden sich derzeit nicht beim System an, sondern bei einer Webanwendung, die auf dem System gehostet wird. Gibt es einen Auslöser, der bei der ersten Anmeldung der Web-App das Ausgangsverzeichnis erstellen kann?
Nicholas Anderson
1
Wenn die Webanwendung den Pam-Stack verwendet, funktioniert dies (obwohl Sie ihn möglicherweise authstattdessen in den Stack legen müssen session). Wenn die App den Pam-Stack nicht verwendet, müssen Sie etwas in die Anwendung selbst einbauen.
Patrick
Es sieht so aus, als ob nur das Sitzungsmodul bereitgestellt wird, ich habe es versucht und tatsächlich funktioniert pam_mkhomedir nicht mit dem Auth-Modul. Ich habe das gleiche Problem wie Nicholas Anderson, ich habe eine Webanwendung. Gibt es eine Möglichkeit, dieses Problem im Auth-Modul zu lösen?
Fabiano Tarlao
6

In Ubuntu 14.04 system-loginist nicht vorhanden, aber eine andere Datei mit dem Namen as common-sessionist vorhanden.

Ich ging dorthin und sagte:

root@GW:~# vim /etc/pam.d/common-session

#
session optional        pam_systemd.so skel=/etc/skel/ umask=0077

Dadurch wird das Ausgangsverzeichnis erstellt, wenn kein vorhanden ist. Setzen Sie auch die Berechtigung auf 700

Mansur Ali
quelle
Die von help.ubuntu.com/community/LDAPClientAuthentication vorgeschlagene Umask lautet umask=0022. Ich glaube, Ihre entfernt ALLE Funktionen, einschließlich readderer, die möglicherweise verhindern, dass einige schlüsselbasierte Authentifizierungs- / Vertrauensmechanismen in einem Mehrbenutzersystem oder in anderen Fällen funktionieren.
Dragon788
0

Ich würde empfehlen, oddjob-mkhomedir zu verwenden :

Für Centos 7 funktioniert dies:

yum install oddjob-mkhomedir

Fügen Sie dies hinzu /etc/pam.d/system-authund /etc/pam.d/password-auth:

session     optional      pam_oddjob_mkhomedir.so skel=/etc/skel

Und schlussendlich:

systemctl enable oddjob; systemctl start oddjob

Dies wurde ursprünglich hier gepostet: https://www.centos.org/forums/viewtopic.php?t=48631

Hinweis: Wenn Sie gerade Ihre /homePartition gemountet haben, vergessen Sie nicht, dies zu tunrestorecon /home

Mejem
quelle