尝试使用 更改密码后usermod -p <new password> <username>
(似乎有效,但没有显示任何消息),我发现无法使用旧密码或新密码登录。从我读到的内容来看,这可能是由于 usermod 期望给出的密码是加密的?
我怎样才能回去?
答案1
是的,发生此问题是因为usermod -p
预期密码哈希(即加密密码),不是明文密码。
-p,- 密码
PASSWORD
返回的加密密码
crypt
。笔记:不建议使用此选项,因为列出进程的用户将看到密码(或加密密码)。
密码将写入本地
/etc/passwd
或/etc/shadow
文件中。这可能与 PAM 配置中配置的密码数据库不同。您应该确保密码符合系统的密码策略。
您可以返回与在任何其他情况下丢失管理员密码时的处理方式相同。
如果您有一个管理员帐户,并且它不是您指定的帐户<username>
,则可以通过常规方式更改密码来恢复它:
sudo passwd <username>
答案2
从man usermod
:
-p, --password PASSWORD
The encrypted password, as returned by crypt(3).
Note: This option is not recommended because the password (or encrypted password) will be visible by users listing the processes.
The password will be written in the local /etc/passwd or /etc/shadow file. This might differ from the password database configured
in your PAM configuration.
You should make sure the password respects the system's password policy.
这基本上意味着该-p
选项需要预加密的密码哈希,而不是您在登录时输入的实际值。这是一个很少使用的选项。
从命令行更改密码的推荐方法是使用passwd
命令。
要修复问题,现在您需要启动到恢复模式,以 root 身份登录并使用更改密码passwd username
答案3
如果你有root权限你可以输入
sudo passwd loginname
该命令将更改该特定用户的密码。之后您就可以再次登录。