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 dadospasswd
e 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
passwd
egroup
do 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
shadow
estiver 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.so
pode 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.