저는 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]
PAM
pam_unix.so
pam_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