更改密码时如何更改/禁用密码复杂性测试?
我知道这是一个“坏”的想法,我知道它不安全。 我在网上寻找答案,我看到的只是抱怨它不好。 但我喜欢使用Linux,因为它让我可以创建我想要的系统并使用它。 介绍结束。
我尝试更改密码:
ruslan:~% passwd Changing password for ruslan. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: You must choose a longer password
如果我尝试sudo passwd ruslan
然后我可以设置我想要的任何密码,所以我不需要密码复杂性检查我的系统上的passwd。
谷歌搜索后我发现应该有PAM模块pam_cracklib来测试密码的复杂性并且可以配置它。 但我的PAM密码设置不包括pam_cracklib:
% cat /etc/pam.d/passwd | grep '^[^#]' @include common-password % cat /etc/pam.d/common-password | grep '^[^#]' password [success=1 default=ignore] pam_unix.so obscure sha512 password requisite pam_deny.so password required pam_permit.so password optional pam_gnome_keyring.so
我猜pam_unix进行了这个测试……哎呀…伙计们,我写完这句话的那一刻我在终端找到了一个启发和打字的man pam_unix
,我找到了pam_unix模块所需的选项。
我刚删除了选项模糊并添加了minlen = 1,现在我很高兴。 所以现在我在/etc/pam.d/common-password
有这一行:
password [success=1 default=ignore] pam_unix.so minlen=1 sha512
我可以设置我想要的任何密码。
我决定为那些可能也需要这个解决方案的人保留这篇文章。 对不起,谢谢。
好的,我会回答我的问题:)
我发现pam_unix
模块执行密码复杂性检查,可以进行配置。
man pam_unix
:
minlen=n Set a minimum password length of n characters. The default value is 6. The maximum for DES crypt-based passwords is 8 characters. obscure Enable some extra checks on password strength. These checks are based on the "obscure" checks in the original shadow package. The behavior is similar to the pam_cracklib module, but for non-dictionary-based checks.
解:
将/etc/pam.d/common-password
文件中pam_unix
模块中的行更改为:
password [success=1 default=ignore] pam_unix.so minlen=1 sha512
它允许您设置最小长度为1的任何密码。
打开通用密码配置文件进行编辑
sudo gedit /etc/pam.d/common-password
评论此行:
#password [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
同时注释此行,否则密码设置将要求您传递大写/小写字母组合:
#password requisite pam_passwdqc.so enforce=everyone max=18 min=disabled,8,8,1,1 retry=2 similar=deny
现在只需将此行添加到同一文件中:
password [success=1 default=ignore] pam_unix.so **minlen=1** sha512
这应该做到……
如果它是一次性的,使用passwd命令作为root,您只需输入所需的值即可为用户设置一个简单的密码。