PAM 구성은 로그인이 실패할 때마다 쉘 스크립트를 실행합니다.

PAM 구성은 로그인이 실패할 때마다 쉘 스크립트를 실행합니다.

로그인이 실패할 때마다 쉘 스크립트를 실행하고 싶습니다. 이를 위해 파일을 업데이트했습니다 /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우리는 한 줄을 건너뛰고 무엇이든 바로 점프하기를 원하기 때문입니다. 이 구성을 개선할 수 있는 더 좋은 방법이 있습니까?

관련 정보