나는 Linux(적어도 Debian)에서는 모든 비밀번호가 해시되어 /etc/shadow
.
하지만 덕분에 libpam-cracklib
몇 가지 비밀번호 규칙을 추가할 수 있습니다. 예를 들어, 이전 비밀번호와 새 비밀번호 간에 동일할 수 있는 문자 수를 나타내는 매개변수를 /etc/pam.d/common-password
설정할 수 있습니다 .Difok
하지만 새 비밀번호를 입력하면 Linux는 내 실제 비밀번호를 모르기 때문에(해시만 있음) 이전 비밀번호와의 유사성을 어떻게 알 수 있습니까?
감사해요!
답변1
PAM 모듈에 비밀번호 변경(또는 비밀번호 변경에 참여)을 요청하면 모듈은 사용자가 지정한 새 비밀번호와 이전 비밀번호를 검색할 수 있습니다.크리스토퍼passwd
이전 비밀번호와 새 비밀번호를 요구합니다(다른 사용자의 비밀번호로 실행하여 변경하지 않는 한 ) root
. 모듈은 이 정보를 사용하여 현재 해시를 뒤집거나 변형을 열거하지 않고도 두 개의 비밀번호를 비교할 수 있습니다.
관련된 PAM 기능은 다음과 같습니다.pam_sm_chauthtok
그리고pam_get_item
, 해당 문서(및 그 안에 참조된 다른 페이지)는 진행 상황을 이해하는 데 도움이 될 것입니다. libpam-cracklib
에서 어떻게 수행되는지 확인할 수 있습니다 .소스 코드.