로그인이 실패할 때마다 쉘 스크립트를 실행하고 싶습니다. 이를 위해 파일을 업데이트했습니다 /etc/pam.d/common-auth
. 원본 텍스트:
auth required pam_env.so
auth required pam_unix2.so
도착하다:
auth required pam_env.so
auth sufficient pam_unix2.so
auth optional pam_exec.so seteuid /root/handle_failure.sh
대부분의 PAM 서비스(예: SSH, Active Directory)에서는 작동하지만 문제는 로그인 서비스에 있습니다. 잘못된 비밀번호를 입력하면 스크립트가 실행되지만 로그인도 성공합니다. pam_unix2
플래그를 필수에서 충분으로 변경한 결과 모듈이 무시되는 것 같습니다 .
이 문제를 해결하기 위해 나는 PAM 구성을 새로운 구성인 new body로 변경하기로 결정했습니다 /etc/pam.d/common-auth
.
auth required pam_env.so
auth [success=1 new_authtok_reqd=ok ignore=ignore default=bad] pam_unix2.so
auth optional pam_exec.so /root/handle_failure.sh
auth optional pam_exec.so /bin/true
예상대로 작동하지만 마지막 줄이 마음에 들지 않습니다 auth optional pam_exec.so /bin/true
. 이 줄이 없으면 로그인이 작동하지 않습니다. 왜냐하면 그것에 따르면 success=1
우리는 한 줄을 건너뛰고 무엇이든 바로 점프하기를 원하기 때문입니다. 이 구성을 개선할 수 있는 더 좋은 방법이 있습니까?