Katalogi domowe i pam.d korzystające z LDAP


10

Tło:
Nie jestem zbyt zaznajomiony z tajnikami uwierzytelniania pam i LDAP po stronie konfiguracji. Korzystałem z systemów korzystających z pam, ale pracowałem tylko nad aplikacjami, a nie z samymi systemami.

Pytania:
Używając pam do kontrolowania uwierzytelnienia przez LDAP, czy to oznacza, że ​​katalog domowy nie zostanie utworzony w systemie?

Jeśli nie, to czy utworzę użytkowników na serwerze, czy w jakiś sposób wypchnę użytkowników do systemu ze źródła LDAP?


1
To pytanie może być powiązane: unix.stackexchange.com/q/106391/34796
drs

Odpowiedzi:


13

Właśnie po to pam_mkhomedirzostał stworzony. Moduł może utworzyć katalogu domowego użytkownika podczas logowania, jeśli ten katalog nie istnieje.
pam_mkhomedir

Sposób instalacji zależy od dystrybucji. Ale musisz umieścić go w co najmniej jednym pliku /etc/pam.d.
Na przykład mam w swoim systemie, /etc/pam.d/system-loginktóry jest zawarty we wszystkich innych usługach, które wykonują logowanie (ssh, gdm itp.).
Chciałbym umieścić pam_mkhomedir.sona sessionstosie, takie jak:

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

Miejsce, w którym stawiasz, zależy całkowicie od tego, co jeszcze znajduje się na stosie. Ale powinieneś umieścić go przed wszystkim innym, co może wymagać katalogu domowego.

Sprawdź man 8 pam_mkhomediropcje, które obsługuje.


Niesamowite. Dziękuję za odpowiedź. Nasi użytkownicy obecnie nie logują się do systemu, logują się do aplikacji internetowej hostowanej w systemie. Czy istnieje czynnik uruchamiający, który może utworzyć swój katalog domowy podczas pierwszego logowania do aplikacji internetowej?
Nicholas Anderson

1
Jeśli aplikacja internetowa korzysta ze stosu pam, wówczas działałby (chociaż może być konieczne umieszczenie go w authstosie zamiast session). Jeśli aplikacja nie korzysta ze stosu pam, musisz wbudować coś w samą aplikację.
Patrick,

Wygląda na to, że udostępniono tylko moduł sesji, próbowałem i faktycznie pam_mkhomedir nie działa z modułem auth. Mam taki sam problem jak Nicholas Anderson, mam aplikację internetową. Czy jest jakiś sposób na rozwiązanie tego problemu w module auth?
Fabiano Tarlao

6

W Ubuntu 14.04 system-loginnie jest obecny, ale obecny jest inny plik o nazwie as common-session.

Poszedłem tam i umieściłem:

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

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

Spowoduje to utworzenie katalogu domowego, jeśli nie istnieje, również ustaw uprawnienie do 700


Umask sugerowany przez help.ubuntu.com/community/LDAPClientAuthentication to umask=0022. Wierzę, że twoje usuwa WSZYSTKIE możliwości, w tym readktóre mogą uniemożliwić działanie niektórych mechanizmów uwierzytelniania / zaufania opartych na kluczach w systemie dla wielu użytkowników lub w innych przypadkach.
dragon788

0

Poleciłbym użyć oddjob-mkhomedir :

W przypadku Centos 7 działa to:

yum install oddjob-mkhomedir

Dołącz to /etc/pam.d/system-authi /etc/pam.d/password-auth:

session     optional      pam_oddjob_mkhomedir.so skel=/etc/skel

I w końcu:

systemctl enable oddjob; systemctl start oddjob

Zostało to opublikowane pierwotnie tutaj: https://www.centos.org/forums/viewtopic.php?t=48631

Uwaga: Jeśli właśnie zamontowałeś /homepartycję, nie zapomnij zrobićrestorecon /home

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.