我的一个电子邮件服务器使用 unix 系统帐户进行用户登录。由于我没有设置任何复杂的密码策略(我们的用户,包括管理人员,都不喜欢复杂的密码),其中一个拥有 6 个字母字典密码的帐户被黑客入侵,并发送了几千封垃圾邮件。因此,我们的 IP 自然而然地落入了 3 个 RBL。在与管理层交谈后,我们决定是时候增加密码复杂性要求了。(最少 8 个字符,大写、小写、数字等)
现在,问题来了。如何确保所有用户都真正更改了密码,而无需检查日志、chage 命令输出等?我能想到的最佳解决方案是为所有用户设置 10 天的密码有效期,然后向所有人发送群发电子邮件,告诉他们,如果他们不更改密码,10 天后他们将无法登录。
因此我开始进行测试,看看这是否是一个可行的解决方案,并且我遇到了一个我应该预见到的问题:即使我将密码过期时间设置为 10 天(chage -M 10 user),更改密码后,过期日期保持不变,而不是返回到“永不”。
用户更改密码后,是否有某种方法可以关闭密码过期功能?(用户可以通过 Webmail 界面使用基于 chpasswd 命令的脚本更改密码)。
答案1
我会尝试结合chage
-M
各种-d
选择。
-M
设置密码有效的最大天数。当 MAX_DAYS 加上 LAST_DAY 小于当前天数时,用户必须更改密码才能使用其帐户。
-d
设置自 1970 年 1 月 1 日最后一次更改密码以来的天数。日期也可以用 YYYY-MM-DD 格式表示。
因此,根据这些选项,决定您希望密码多久过期一次。显然,您不希望密码每 10 天过期一次,因此-M
应将选项设置为更高的值。
为了让您的用户在接下来的 10 天内更改密码,请将-d
(LAST_DAY) 选项设置为该值,以便LAST_DAY + MAX_DAYS == TODAY + 10 DAYS
。
此技巧可让您更快地接近密码到期日期。一旦更改密码,下一个到期日期将根据选项指定的值设置-M
。