如何使用 sudo 设置违反密码约束的密码而不更改约束

如何使用 sudo 设置违反密码约束的密码而不更改约束

我在其他人共享的计算机上具有 root 访问权限。我认为密码限制是荒谬的,它们在如何强制使用和排序非单词字符方面过于过度,并且由于不断需要使用特殊字符来分解密码,因此使密码输入速度变慢(即使我输入 I'对于特殊字符,我总是慢一点,这似乎打断了我的流程)。我可以创建一个长而安全的密码,不受任何限制。我想使用 root 访问权限来规避密码规则,以创建一个我喜欢且可以快速输入的密码。

但是,我不想自己更改密码限制。或者更准确地说我想要改变它们,我认为它们是愚蠢的,并且实际上并没有增加书面的安全性,但我不应该改变它们,因为这是由更高权威机构监管的。

有没有一种方法可以利用我的 root 访问权限来设置违反这些限制的密码,而不会更改系统上任何其他人的约束?

答案1

您可以尝试printf "%s\n" 'username:encryptedpassword' | sudo chpasswd -e- 这也许能够绕过 PAM 强制执行的密码检查。

密码必须预先加密,例如mkpasswdmuru 的示例。例如:

p=$(mkpasswd -m sha-512 'mysupersekretpassword')
printf "%s:%s\n" 'username' "$p" | sudo chpasswd -e

printf在这里使用而不是echo因为echo会解释和更改某些字符序列的输出可能出现在加密密码中,例如\t\n\nnn(3 位八进制)等。

请记住mkpasswd从您的.bash_history.或者使用命令export HISTCONTROL=ignorespacep=$(...)在命令前添加空格,这样它就不会存储在历史记录中。如果您不使用 bash,请使用适合您的 shell 的方法。

答案2

您可以以管理员身份手动更改密码。只需登录并执行以下操作:

输入:

# passwd whitecat

输出应该是:

Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

答案3

可能还有其他更安全的方法,但一种方法是编辑/etc/shadow.获取您想要的密码的加密形式:

$ mkpasswd -m sha-512
Password: 
$6$zGvnR7mWtj59LfpO$t/VMNTbqyp9ykVMWUhsXghVvJ15iGDiFwvhNYaJIbBy8iM9E/vHSTmbBa0iotCLBA.MGBM949tyoxrjX81Qkg1

foo如果您想知道的话,这是 的加密形式。

编辑/etc/shadow

sudo vipw -s

找到您的用户,将当前密码替换为生成的密码,保存并退出。如果你搞砸了,那将是地狱,所以让sudo会话在另一个终端中运行。

相关内容