Isso ajuda a quebrar as coisas assim na sua cabeça:
-
NSS - Um sistema baseado em módulos para controlar como vários bancos de dados no nível do sistema operacional são montados na memória. Isso inclui (mas não se limita a)
passwd,group,shadow(isso é importante notar) ehosts. As pesquisas de UID usam o banco de dadospasswde as pesquisas de GID usam o banco de dadosgroup. -
PAM - Um sistema baseado em módulos para permitir autenticação e contabilidade baseadas em serviços. Ao contrário do NSS, você não está ampliando os bancos de dados existentes; Os módulos PAM podem usar a lógica que quiserem, embora os logins de shell ainda dependam dos bancos de dados
passwdegroupdo NSS. (você sempre precisa de pesquisas de UID / GID)
A diferença importante é que o PAM não faz nada sozinho. Se um aplicativo não se vincular à biblioteca PAM e fizer chamadas para ele, o PAM nunca será usado. O NSS é fundamental para o sistema operacional e os bancos de dados são bastante onipresentes para a operação normal do sistema operacional.
Agora que temos isso fora do caminho, aqui está a curva: enquanto pam_ldap é a maneira popular de autenticar contra o LDAP, não é a maneira somente .
- Se
shadowestiver apontando para o serviço ldap em/etc/nsswitch.conf, qualquer autenticação executada no banco de dados shadow terá êxito se os atributos para esses mapeamentos de campos de sombra (particularmente o campo de senha criptografada) estiverem presentes no LDAP e permitirem entrar.- Isso, por sua vez, significa que
pam_unix.sopode resultar em autenticação contra o LDAP, pois ele é autenticado no banco de dados shadow. (que é gerenciado pelo NSS e pode estar apontando para o LDAP)
- Isso, por sua vez, significa que
- Se um módulo PAM executar chamadas em um daemon que, por sua vez, consulta o banco de dados LDAP (digamos,
pam_sss.so, que enganchasssd), é possível que o LDAP seja referenciado.