내 인증은 LDAP에 중앙 집중화되어 있습니다. LDAP 없이 작동하는 로그인 시스템이 있으므로 내 /etc/passwd
파일에 존재합니다. 이것은 pam.d 디렉토리에 있는 내 일반 계정 파일입니다.
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 10000 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
여기에는 문제가 없지만 일부 문서에서는 pam_ldap.so 구성 줄이 첫 번째이기 때문에 이 파일이 잘 정렬되어 있는지 궁금합니다.
답변해 주셔서 감사합니다.
답변1
auth
예, 맞는 것 같습니다. ( and not을 사용해야 하는 경우는 제외 account
) 각 줄을 하나씩 분석해 보겠습니다.
auth required pam_unix.so
pam_unix
여기서는 (표준 비밀번호 인증)을 통해 체인에 들어갑니다. 이 모듈은 required
무슨 일이 일어나더라도 체인이 아래쪽으로 계속된다는 것을 의미합니다. 그러나 모듈이 실패하면 체인은 실패로 표시되고 결국 사용자의 액세스가 거부될 수 있습니다.
auth sufficient pam_succeed_if.so uid < 10000 quiet
이 줄은 요청의 UID를 확인합니다. 모듈이 성공하면(사용자 ID가 10000 미만) 모듈이 있으므로 체인이 중지됩니다 sufficient
. 그러나 이전 모듈에서 설정한 플래그는 변경되지 않습니다. UNIX 인증이 실패하면 required
성공하더라도 체인은 실패로 종료됩니다.pam_succeed_if
auth [default=bad success=ok user_unknown=ignore] pam_ldap.so
우리가 여기에 있다면 pam_succeed_if
실패했을 것입니다( sufficient
체인을 모듈로 종료하지 않았기 때문입니다). 이는 UID가 10000보다 크다는 것을 의미합니다(이것이 LDAP 사용자에 대해 설정한 임계값이라고 생각합니다). 이 모듈의 동작은 좀 더 자세합니다:
- 성공하면 체인이 성공으로 표시됩니다(
ok
). 이는 UNIX 모듈의 결과에 대응하고 체인을 성공적인 상태로 복원합니다. - 사용자가 LDAP 서버에 알려지지 않은 경우 이 모듈은 무시됩니다. 체인의 결과는 입니다
pam_unix
. - 다른 모든 경우( )에서는 UNIX 성공 여부에 관계없이
default
모듈이 체인을 실패( )로 표시합니다 .bad
마지막으로 더미 모듈이 있습니다.
auth required pam_permit.so
이 모듈은 매번 성공합니다. 체인의 상태를 다음과 같이 설정하는 데 사용됩니다.성공이전에 모듈이 작동한 적이 없는 경우. 그러나 이것은 결코 귀하의 경우가 아닙니다.