PAM을 사용하여 비밀번호 변경 사이의 최소 일수를 설정하는 방법은 무엇입니까?

PAM을 사용하여 비밀번호 변경 사이의 최소 일수를 설정하는 방법은 무엇입니까?

내 Amazon Linux(RHEL 파생) 시스템에서는 /etc/login.defs: 에서 암호 변경 간격의 최소 일수를 1일로 설정했습니다 PASS_MIN_DAYS 1.

이 작업을 수행하려면 /etc/pam.d/에 있는 PAM 구성 파일을 사용해야 한다고 생각합니다. 그러나 이 작업에 대한 문서를 찾을 수 없습니다. PAM을 사용하여 비밀번호를 변경할 수 있는 시기를 제어할 수 있는 방법이 있습니까? 그것은 무엇입니까?

답변1

사용자별 비밀번호 정책을 설정합니다.

lchage한 가지 옵션은 명령을 사용하여 사용자 비밀번호 정책을 수정하는 것입니다 .

다음 명령은 비밀번호 변경 사이에 필요한 최소 일수를 설정합니다.

lchage --mindays=<days> <username>

다음 명령을 사용하여 현재 정책을 볼 수 있습니다.

lchage --list <username>

모든 사용자를 위한 공통 정책:

시스템의 모든 사용자에게 공통적인 비밀번호 정책을 설정하려면 파일 PASS_MIN_DAYS에서 변수를 편집해야 합니다 /etc/login.defs.

root@ubuntu:~# grep PASS_MIN_DAYS /etc/login.defs 
#   PASS_MIN_DAYS   Minimum number of days allowed between password changes.
PASS_MIN_DAYS   1

위의 grep 목록은 비밀번호 변경 사이에 필요한 최소 #일이 1임을 보여줍니다.

사용자가 설정된 최소 #일 이전에 비밀번호를 재설정하려고 하면 아래 나열된 오류가 표시됩니다.

$ passwd
Changing password for test.
(current) UNIX password: 
You must wait longer to change your password
passwd: Authentication token manipulation error
passwd: password unchanged

사용자를 생성하면 정의된 정책이 /etc/login.defs생성되는 사용자에게 적용됩니다. lchage --list명령을 사용하여 현재 정책을 볼 수도 있습니다.

답변2

흥미로운 질문을 제기하셨습니다. login.defs 매뉴얼 페이지에 따르면 pass_min_days 매개변수는 계정을 생성할 때 사용자에게만 적용되므로 /etc/pam.d의 변경 사항이 일관성을 위해 더 좋습니다. 그러나 내가 아는 한 표준 pam_unix 모듈(약간 pam_cracklib.so인 것 같습니다)에는 날짜 관련 옵션이 없습니다. 또한 chage/etc/shadow를 조작하는데 /etc/pam.d/에는 아무것도 없습니다.

결국, PAM 매개변수를 통해서는 이 값을 관리할 수 없다는 것이 답이라고 생각합니다.

관련 정보