我正在使用 ssh 密钥和用户 adm 登录服务器,我需要为正在登录的同一用户重置密码,但是,当我键入 passwd 命令时,它会显示一条消息,要求我输入该服务器的实际密码用户,我不知道。我如何删除每次您想要重置时都要求您提供实际密码的密码策略?
答案1
根据设计,Linux 不会让您在不提供原始密码的情况下更改密码。这(部分)是为了保护您免受自身和您运行的程序的影响(即您运行的程序在不知道您当前密码的情况下无法更改您的密码)。
然而,超级用户 root 却不受这些世俗问题的影响。因此,如果您有直接(通过su
)或间接(通过sudo
)拥有超级用户访问权限,您可以使用这些权限让超级用户重置您的密码,从而无需知道当前密码是什么。
直接地:
username@host $ su -
Password: [enter root's password]
root@host # passwd username
间接:
username@host $ sudo passwd username
Password: [enter username's password]
由于您不知道当前密码,因此必须采用直接路径。
答案2
这passwd
命令以普通用户身份运行时,在更改密码之前始终会询问当前密码。这显然是一项安全功能,可以防止有人物理访问您的计算机来锁定您的帐户。
当以 root 身份运行时(或使用 sudo,同样的事情),passwd
将允许您在不知情的情况下更改任何用户的密码。
另一种方法仍然需要 sudo 或访问 root 帐户,即从 中删除散列密码/etc/shadow
。这有效地将密码替换为空密码