![使用 PAM,如何设置密码更改之间的最短天数?](https://linux22.com/image/72637/%E4%BD%BF%E7%94%A8%20PAM%EF%BC%8C%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%E5%AF%86%E7%A0%81%E6%9B%B4%E6%94%B9%E4%B9%8B%E9%97%B4%E7%9A%84%E6%9C%80%E7%9F%AD%E5%A4%A9%E6%95%B0%EF%BC%9F.png)
在我的 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 参数来管理这个值。