Se eu executar
sudo getent shadow
Eu vejo hashes de senha para todos os usuários locais que os possuem. Para a maioria das contas LDAP, vejo apenas *
no campo de senha. No entanto, para alguns usuários do LDAP, vejo hashes de senha. Verifiquei que eles não têm contas locais (ou seja, nenhuma entrada em /etc/passwd
, mas getent passwd username
retorna uma linha).
Na verdade, logado como eu, minha entrada de usuário é uma das que têm *
.
Existe um único servidor LDAP executando o OpenLDAP com um único grupo de contas (uma ramificação na árvore).
Os servidores do cliente LDAP estão executando nscd
e libnss-ldap
.
Esta é uma parte de /etc/nsswitch.conf
nos servidores do cliente LDAP:
passwd: files ldap
group: files ldap
shadow: files ldap
O LDAP é usado para autenticar o usuário para efetuar login no servidor cliente LDAP nesse caso e, em algum momento, o mecanismo de autenticação, PAM, nesse caso, deve verificar um hash da senha fornecida pelo usuário no login em relação ao armazenamento armazenado. hash que está contido no banco de dados LDAP.
A conta LDAP de cada usuário armazena seu hash de senha e tem as objectClass
es de posixAccount
e shadowAccount
(entre outros valores e configurações).
Apenas as contas do sistema têm entradas locais em /etc/password
e /etc/shadow
. As contas de usuários estão todas no LDAP (e somente lá). Todos os usuários no LDAP possuem entradas userPassword.
O que pode causar isso ou como posso diminuir a causa disso? Por que o getent shadow
não retorna hashes de senha para todos os usuários LDAP?