인증을 위해 LDAP만 사용하도록 서버를 설정했습니다 authconfig-tui
. 모든 것이 잘 작동하지만 을 실행하면 passwd
두 개의 비밀번호 프롬프트가 나타납니다.
[beamin@rhel6-test-server1 ~]$ passwd
Changing password for user beamin.
Changing password for beamin.
(current) UNIX password:
Enter login(LDAP) password:
왜 둘 다 필요합니까? 이런 일이 발생하지 않도록 할 수 있나요?
내용은 다음과 같습니다 /etc/pam.d/passwd
.
$ cat /etc/pam.d/passwd
#%PAM-1.0
auth include system-auth
account include system-auth
password substack system-auth
-password optional pam_gnome_keyring.so
include()의 내용은 다음과 같습니다 /etc/pam.d/system.auth
.
$ cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
nsswitch.conf
@Nikhil이 질문한 내용:
$ egrep 'passwd|shadow' /etc/nsswitch.conf
#passwd: db files nisplus nis
#shadow: db files nisplus nis
passwd: files
shadow: files
답변1
이는 /etc/nsswitch.conf
사용자, 그룹이 비밀번호, 그룹 및 섀도우 맵에 저장된 위치를 찾도록 시스템에 지시합니다. 로컬 파일이든, nis/yp이든, ldap이든 nsswitch.conf입니다. 이 변경 사항을 지원하는 구성은 나중에 pam 구성 또는 nss 라이브러리에 나타납니다. Linux의 pam은 tcp_wrappers와 Unix 인증을 사용자 정의하는 다양한 방법도 지원하므로 매우 단순화되었습니다.
실행하고 /usr/bin/authconfig
ldap을 사용하도록 변경하면,
Authconfig는 PAM 파일(특히), 특히 /etc/pam.d/system-auth 파일을 변경합니다. 인증을 위해 LDAP를 사용하도록 구성된 Red Hat 시스템에서 일반적인 system-auth 파일은 다음과 같습니다:
다음으로 "pam_unix" 모듈이 호출되어 사용자에게 비밀번호를 묻는 작업을 수행합니다. "nullok" 및 "likeauth" 매개변수는 null 비밀번호가 계정을 잠그는 것으로 간주되지 않으며 모듈이 a라고 불리는 경우에도 동일한 값("auth" 값과 "유사한" 값)을 반환한다는 것을 의미합니다. 자격 증명 설정 모듈. 이 모듈은 "필수"가 아니라 "충분"입니다. "pam_ldap" 모듈이 호출되고 "use_first_pass"라는 메시지가 표시됩니다. 즉, 사용자에게 다른 비밀번호를 묻는 대신 pam_unix 모듈에서 수집한 비밀번호를 사용하라는 메시지가 표시됩니다. 이 모듈은 "sufficient"로 표시되어 있고 pam_unix 뒤에 위치합니다. 즉, pam_unix가 로컬에서 비밀번호를 성공적으로 확인하면 pam_ldap이 전혀 호출되지 않습니다.
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
/etc/ldap.conf에는 다음이 있어야 합니다.
pam_lookup_policy yes
pam_password exop
/etc/ssh/sshd_config가 있어야 하며 구성 변경 후 다시 시작해야 합니다.
UsePAM yes