验证当前用户的密码,即使是 root

验证当前用户的密码,即使是 root

有没有一个简单的命令来验证当前用户的密码?命令

$ su -c true $(id -nu)

对于非 root 用户来说就足够了。然而root用户在使用时不需要验证自己的身份su

是否有替代命令让 root 用户可以安全、简单地验证他记住的 root 密码是否仍然正确?

我使用桌面 Linux 发行版,特别是 Arch Linux。

答案1

可能的解决方案之一是暂时切换到非 root 交互式用户,然后切换到 root 并注销回 root shell,如下所示($SHLVL不会修改):

# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),17(audio)
# su user -c 'su root -c exit' # type an incorrect password
Password:
su: Authentication failure
# echo $?
1
# su user -c 'su root -c exit' # type a correct password
Password:
# echo $?
0
#

su从 Shadow-4.2.1 开始在 Slackware Linux 和suFreeBSD 上进行了测试。

相关内容