アクティブなルートアカウントがありますが、パスワードがわかりません。
自分のパスワードを変更したり、ツールを使用して別のユーザーを作成したりするには、自分passwd
のパスワードを知る必要があります。これにより問題が発生します。しかし、私はルートなので、/bin/
ディレクトリ内の任意のバイナリを置き換えることはできますか?passwd
ソースコードを修正してコンパイルしたら、ソースを新しいコードに置き換えます。本当にそう簡単ですか?予防策はありますか?
私のテストシステムは次のとおりです。FreeBSD 11.0
+Ubuntu 18.04
答え1
私が見たほとんどのLinuxは、従来のパスワードを要求しないように設定されていpasswd
ます。root
root@xxx ~# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
尋ねるか手動で編集してもpasswd
試すことができます(パスワードのハッシュは2番目のフィールド、2つのコロン間の長い文字の紹介)、まずハッシュを計算する必要があります。これを行うツールは次のとおりです。chpasswd
/etc/passwd
/etc/shadow
openssl
$ echo foobar | openssl passwd -1 -stdin
$1$G/nr44th$wn16q7ITSvfrNq4amDfzn1
(実際にはMD5
ベース$1$
ハッシュを使用してはいけませんが、少なくとも既知の値にリセットしてハッシュを変更するために使用できるため問題ありませんpasswd
。)