En los últimos días he configurado un sistema Linux con autenticación LDAP y todo funciona bien, pero todavía hay algo que realmente no puedo entender con respecto a NSS y PAM, también después de mucha investigación.
Citando:
NSS permite a los administradores especificar una lista de fuentes donde se almacenarán y buscarán archivos de autenticación, nombres de host y otra información
y
PAM es un conjunto de bibliotecas que proporcionan una plataforma de autenticación configurable para aplicaciones y el sistema operativo subyacente.
Lo que no entiendo es cómo PAM y NSS trabajan e interactúan juntos. En este libro, la arquitectura se explica bastante bien: configuro PAM para usar pam_ldap
para cuentas LDAP y pam_unix
para cuentas locales, luego configuro nsswitch.conf
para obtener información de archivos locales y LDAP.
Si lo he entendido correctamente, LDAP se usa dos veces: primero pam_ldap
por NSS, que se llama desde pam_unix
. ¿Está bien? ¿LDAP se usa realmente dos veces? Pero, ¿por qué necesito configurar NSS y PAM? Mi explicación es que PAM realiza tareas diferentes que NSS y lo utilizan otros programas. Pero, entonces, debería ser posible usar solo NSS o solo PAM, como he leído en esta página .
Así que experimenté un poco y primero intenté eliminar LDAP de nsswitch.conf
(y la autenticación dejó de funcionar como si solo pam_ldap no fuera suficiente para hacer el trabajo). Luego volví a habilitar LDAP en NSS y lo eliminé de la configuración de PAM (esta vez todo funcionó bien, como si fuera pam_ldap
inútil y NSS es suficiente para autenticar a un usuario).
¿Hay alguien que pueda ayudarme a aclarar esto? Muchas gracias de antemano.
ACTUALIZAR
Acabo de intentar algo ahora. I eliminó de nuevo todas las pam_ldap
entradas en todos los campos de configuración de PAM y también he eliminado shadow: ldap
de nsswitch.conf
. Como ahora en todo el sistema solo hay líneas: passwd: ldap files
y group: ldap files
en nsswitch.conf
. Bueno ... el inicio de sesión con usuarios LDAP funciona perfectamente, esas dos líneas (más /etc/ldap.conf
) son suficientes para configurar la autenticación LDAP.
Desde mi conocimiento, PAM es independiente de NSS, pero mis pruebas mostraron que no lo es. Entonces me pregunto si es posible desactivar completamente NSS y usar solo PAM.
getent shadow | grep LDAPUSER
grep LDAPUSER /etc/shadow