내가 실행하면
sudo getent shadow
비밀번호 해시가 있는 모든 로컬 사용자가 표시됩니다. 대부분의 LDAP 계정에서는 *
비밀번호 필드에만 이 내용이 표시됩니다. 그러나 일부 LDAP 사용자의 경우 비밀번호 해시가 표시됩니다. 로컬 계정이 없는 것을 확인했습니다(즉, 입력은 없지만 /etc/passwd
행 getent passwd username
이 반환됨).
실제로 나 자신으로 로그인하면 내 사용자 항목은 입니다 *
.
일련의 계정(트리의 분기)으로 OpenLDAP를 실행하는 LDAP 서버가 있습니다.
LDAP 클라이언트 서버가 실행 nscd
중이고 libnss-ldap
.
/etc/nsswitch.conf
이는 서버의 LDAP 클라이언트의 일부입니다.
passwd: files ldap
group: files ldap
shadow: files ldap
이 경우 LDAP는 LDAP 클라이언트 서버에 로그인하기 위해 사용자를 인증하는 데 사용되며, 어떤 시점에서는 인증 메커니즘(이 경우 PAM)이 저장된 해시 값과 비교하여 로그인 시 제공된 사용자 ID를 확인해야 합니다. 해시 값. LDAP 데이터베이스에 포함되어 있습니다.
각 사용자의 LDAP 계정은 비밀번호 해시를 저장하고 및 ( 다른 값과 설정 중에서) objectClass
을 갖습니다.posixAccount
shadowAccount
시스템 계정에만 /etc/password
및 에 로컬 항목이 있습니다 /etc/shadow
. 사용자 계정은 모두 LDAP(그리고 LDAP에서만)에 있습니다. LDAP의 모든 사용자에게는 사용자 비밀번호 항목이 있습니다.
이 문제의 원인은 무엇이며 원인을 어떻게 알 수 있습니까? getent shadow
모든 LDAP 사용자에 대해 비밀번호 해시를 반환 하지 않는 이유는 무엇입니까 ?