su가 비밀번호를 여러 번 묻도록 합니다.

su가 비밀번호를 여러 번 묻도록 합니다.

저는 Debian 8을 사용하고 있는데 비밀번호를 입력하면 su프롬프트가 한 번만 나타납니다. 잘못된 비밀번호를 입력하면 다시 시도하고 즉시 다시 입력을 시작하고 싶지만 비밀번호의 일부가 셸에 표시됩니다.

+를 사용하여 취소할 su때까지 비밀번호를 다시 묻도록 구성하려면 어떻게 해야 합니까 ?CtrlC

/etc/sudoers, /etc/pam.d/*, 를 보려고 했더니 /etc/login.defs이거unix.SE 문제불행하게도 이것은 불완전합니다.

답변1

이러한 PAM모듈은 귀하의 요구에 거의 정확하게 맞춰질 수 있는 유연성 수준을 제공합니다. 댓글에 남겨주신 답변을 바탕으로 실패하기 전에 세 번의 시도를 허용해 드리겠습니다 su. 이것이 제가 여기서 제안하는 것입니다.

나는 강력히 추천한다변경한 모든 구성 파일을 백업 PAM하고 어딘가에 루트 셸을 열어 손상된 변경 사항을 되돌릴 준비가 되었습니다. 변경한 후에 PAM는 여전히 로그인하여 루트 액세스 권한을 얻을 수 있는지 테스트하는 것이 중요합니다. 실수를 하면 시스템을 완전히 플러시할 수 있습니다.

이러한 PAM파일은 에 /etc/pam.d있으며 이를 변경하려면 루트 액세스가 필요합니다.

Debian 8의 파일에는 su인증 줄과 포함된 파일에 대한 참조가 포함되어 있습니다 common-auth. 그것들을 합치면 다음과 같습니다.

auth    sufficient pam_rootok.so

auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    requisite                       pam_deny.so

auth    required                        pam_permit.so
auth    optional                        pam_cap.so

흥미로운 부분은 비밀번호 데이터베이스( 및 )에 대해 인증하는 pam_unix.so호출 입니다 . 이 구성 요소 는 모듈이 성공 상태를 반환하면 다음 N개 모듈을 건너뛰었음을 알려줍니다. 따라서 구성에서 성공 반환을 받으면 실패 모듈을 건너뜁니다 ./etc/passwd/etc/shadow[success=N]PAMpam_unix.sopam_deny.so

이 접근 방식을 사용하여 다음과 같이 두 번 더 인증 시도를 구축할 수 있습니다.

auth    sufficient pam_rootok.so

auth    [success=3 default=ignore]      pam_unix.so nullok_secure
auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    requisite                       pam_deny.so

auth    required                        pam_permit.so
auth    optional                        pam_cap.so

여기까지만 하면 작업이 완료됩니다.


SAMBA 또는 기타 외부 인증 체계를 실행하는 경우 변경 사항을 약간 조정해야 합니다. 내 시스템 중 하나에는 이와 같은 추가 검사가 있습니다 pam_winbind.so. 이 항목도 복사해야 하므로 여기에서 시작할 수 있습니다.

auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth    requisite                       pam_deny.so

이와 관련하여:

auth    [success=6 default=ignore]      pam_unix.so nullok_secure
auth    [success=5 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth    [success=4 default=ignore]      pam_unix.so nullok_secure
auth    [success=3 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth    requisite                       pam_deny.so

관련 정보