내 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 매개변수를 통해서는 이 값을 관리할 수 없다는 것이 답이라고 생각합니다.