現在のユーザーのパスワードを検証します(ルートユーザーの場合も含む)

現在のユーザーのパスワードを検証します(ルートユーザーの場合も含む)

現在のユーザーのパスワードを確認する簡単なコマンドはありますか?コマンド

$ su -c true $(id -nu)

非ルートユーザーの場合は で十分です。ただし、ルートユーザーは を使用するときに自分の身元を確認する必要はありませんsu

ルート ユーザーが記憶しているルート パスワードがまだ正しいかどうかを安全かつ簡単に確認できる代替コマンドはありますか?

具体的には、デスクトップ Linux ディストリビューション、Arch Linux を使用します。

答え1

考えられる解決策の 1 つは、一時的に非 root 対話型ユーザーに切り替えてから、root に切り替えて、次のように root シェルにログアウトすることです ($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
#

suSlackware Linux 上の shadow-4.2.1 以降とsuFreeBSD 上でテスト済み。

関連情報