我有一个带有 GNOME 3.18 系统的 Ubuntu GNOME 15.10,我想设置它,以便使用它的用户不能将新密码设置为以前的 X 密码之一,如何实现?
当我更改密码时,如果它与我的上一个密码太相似,我的系统将不允许我将其更改为该密码,如果答案还可以显示如何扩展它以便新密码也不会与之前 X 个记录的密码太相似,那就太好了。
笔记:最后 X 个密码的历史记录不应以不安全的未加密方式存储,事实上,它们应该以与当前密码相同或类似的方式存储(作为加盐哈希)。
我使用X
来表示密码的数量(这可以是任何值),因为我希望能够轻松更改无法使用的存储密码数量,同时也让其他人可以轻松地获取答案并按照他们希望的方式使用它,而不是得到一个围绕一个非常固定的值的答案X
。
信息更新:
根据要求,以下是我的文件内容(不包括顶部的注释)/etc/pam.d/common-password
:
# here are the per-package modules (the "Primary" block)
password [success=1 default=ignore] pam_unix.so obscure sha512
# here's the fallback if no module succeeds
password requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password required pam_permit.so
# and here are more per-package modules (the "Additional" block)
password optional pam_gnome_keyring.so
# end of pam-auth-update config
答案1
您可以配置 PAM 来为您执行此操作。只需打开/etc/pam.d/common-password
并附加到use_authtok
第一password
行(调用 pam_unix 模块的行),使其看起来有点像这样:
password [success=1 default=ignore] pam_unix.so obscure sha512 use_authtok
现在在之前修改的行上方添加此行:
password required pam_pwhistory.so remember=X
其中X
是要检查重复密码的先前密码的数量。
以前的X
密码将以哈希形式存储在以下位置/etc/security/opasswd
所以你需要创建文件当且仅当它不存在并为其分配权限 600(-rw-------
):
sudo touch /etc/security/opasswd
sudo chmod 600 /etc/security/opasswd