我的用户名是 z,密码包含 z,系统不允许我使用该密码。错误是:
错误密码:密码以某种形式包含用户名。
这是一个错误,我无法通过。我在 Google 上搜索了这个问题,但找不到任何可行的答案。以下是我尝试过的方法:
- 从 root 调用 passwd。
- 将 pam_pwquality.so 上的 /etc/pam.d/system-auth 和 /etc/pam.d/password-auth: 从必需项更改为可选项,或注释掉该行。注释掉会导致错误“passwd:身份验证令牌操作错误”。
- 检查/usr/sbin/authconfig --help,没有找到相关选项。
- 更改 /etc/security/pwquality.conf,找不到相关选项。尝试了 gecoscheck=0,没有任何变化。
谁能帮我?
答案1
检查 libpwqualitygithub 上的代码您收到的错误消息似乎来自此库。可能从 PAM 模块调用,因此您应该开始检查/etc/pam.d/passwd
默认情况下密码中包含的内容,它仅包含/etc/pam.d/system-auth
。我认为您已经非常接近了,但是,将模块设置为可选对您不起作用。我建议将其注释掉进行测试,并gecoscheck=N
在 pam 或/etc/security/pwquality.conf
简单地注释掉行/etc/pam.d/system-auth
可能不起作用,但是,您可以尝试将文件密码部分更新为类似以下内容(仅密码部分重要):
password sufficient pam_unix.so sha512 password required pam_deny.so
之后,只需执行passwd user
尝试您最喜欢的密码即可。对我来说,设置完全相同的用户名和密码是有效的,从系统安全角度来看,这显然是不推荐的。
答案2
另一种方法是从现有密码文件(在另一台电脑上)复制加密密码。
这意味着从用户那里复制密码我的用户从/etc/shadow
一台电脑上的文件中,无需严格的密码检查:
[..]
sshd:!!:19571::::::
postfix:!!:19571::::::
myuser:$6$<some crypted login>:18472:0:99999:7:::
[..]
到密码规则更严格的 PC。只需复制加密密码即可
$6$<some crypted login>
放入第二和第三个冒号之间的新密码文件中:
($6$ 是加密类型,本例中实际加密的密码被删除)。
你可能还需要检查/etc/passwd
和 /etc/shadow
文件 ala
> pwck -r /etc/passwd /etc/shadow
user 'ftp': directory '/var/ftp' does not exist
pwck: no changes
(并且可能需要重新启动系统才能使密码更改生效!?)
答案3
答案4
我刚刚测试过,从 root 调用 passwd 将强制更新用户密码,尽管它仍然会显示一条警告消息“密码错误:密码以某种形式包含用户名”,但实际更新有效。