Directorios de inicio y pam.d usando LDAP

10

Antecedentes:
no estoy demasiado familiarizado con los entresijos de la autenticación de pam y LDAP en el lado de la configuración. He usado sistemas que usan pam pero solo he trabajado en aplicaciones, no en sistemas en sí.

Preguntas: el
uso de pam para controlar la autenticación a través de LDAP, ¿significa esto que no se creará un directorio de inicio en el sistema?

Si no es así, ¿crearía usuarios en el servidor o de alguna manera empujaría a los usuarios al sistema desde una fuente LDAP?

Nicholas Anderson
fuente
1
Esta pregunta podría estar relacionada: unix.stackexchange.com/q/106391/34796
drs

Respuestas:

13

Esto es exactamente para lo que pam_mkhomedirfue hecho.
El pam_mkhomedirmódulo puede crear el directorio de inicio del usuario al iniciar sesión si ese directorio no existe.

Cómo instalarlo depende de su distribución. Pero necesitaría ponerlo en uno o más archivos /etc/pam.d.
Por ejemplo, en mi sistema tengo el /etc/pam.d/system-loginque está incluido en todos los demás servicios que realizan inicio de sesión (ssh, gdm, etc.).
Pondría pam_mkhomedir.soen la sessionpila, como:

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

Donde lo pones depende completamente de qué más hay en la pila. Pero debe ponerlo antes que cualquier otra cosa que pueda necesitar el directorio de inicio.

Consulte man 8 pam_mkhomedirlas opciones que admite.

Patricio
fuente
Increíble. Gracias por la respuesta. Nuestros usuarios actualmente no inician sesión en el sistema, inician sesión en una aplicación web que está alojada en el sistema. ¿Existe un desencadenante que pueda crear su directorio de inicio en un inicio de sesión inicial de la aplicación web?
Nicholas Anderson
1
Si la aplicación web usa la pila pam, entonces funcionaría (aunque es posible que tenga que ponerla en la authpila en lugar de session). Si la aplicación no usa la pila de pam, entonces tendría que construir algo en la aplicación misma.
Patrick
Parece que solo se proporciona el módulo de sesión, lo he intentado y, de hecho, pam_mkhomedir no funciona con el módulo de autenticación. Tengo el mismo problema que Nicholas Anderson, tengo una aplicación web. ¿Hay alguna forma de resolver este problema en el módulo de autenticación?
Fabiano Tarlao
6

En Ubuntu 14.04 system-loginno está presente, pero otro archivo llamado como common-sessionestá presente.

Fui allí y puse:

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

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

Esto creará un directorio de inicio si no existe también establezca el permiso para 700

Mansur Ali
fuente
La umask sugerida por help.ubuntu.com/community/LDAPClientAuthentication es umask=0022. Creo que la suya elimina TODAS las capacidades, incluidas las readque pueden evitar que algunos mecanismos de autenticación / confianza basados ​​en claves funcionen en un sistema multiusuario u otros casos.
dragon788
0

Recomiendo usar oddjob-mkhomedir :

Para Centos 7 esto funciona:

yum install oddjob-mkhomedir

Agregue esto a /etc/pam.d/system-authy /etc/pam.d/password-auth:

session     optional      pam_oddjob_mkhomedir.so skel=/etc/skel

Y finalmente:

systemctl enable oddjob; systemctl start oddjob

Esto se publicó originalmente aquí: https://www.centos.org/forums/viewtopic.php?t=48631

Nota: Si acaba de montar su /homepartición, no olvide hacerrestorecon /home

mejem
fuente