Linux 中的密码策略不允许我重置密码

Linux 中的密码策略不允许我重置密码

我正在使用 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。这有效地将密码替换为空密码

相关内容