パスワードは通常 /etc/shadow
に保存されます 、ユーザーが読み取ることはできません。ただし、歴史的に、それらは誰でも読めるファイル /etc/passwd
に保存されていました。 すべてのアカウント情報とともに。下位互換性のために、パスワード ハッシュが /etc/passwd
の 2 列目に存在する場合 、 /etc/shadow
のものより優先されます .
歴史的に、/etc/passwd
の空の 2 番目のフィールド アカウントにパスワードがないことを意味します。つまり、誰でもパスワードなしでログインできます (ゲスト アカウントに使用)。これは時々無効になります。パスワードなしのアカウントが無効になっている場合は、選択したパスワードのハッシュを入れることができます。 crypt
を使用できます perl -le 'print crypt("foo", "aa")'
などのパスワード ハッシュを生成する関数 パスワードを foo
に設定するには .
/etc/passwd
にしか追加できない場合でも、ルート アクセスを取得することは可能です。 内容を上書きしないでください。これは、名前が異なる限り、同じユーザーに対して複数のエントリを持つことができるためです。ユーザーは、名前ではなく ID で識別されます。root アカウントの定義機能は、その名前ではなく、のユーザー ID は 0 です。そのため、別の名前、選択したパスワード、およびユーザー ID 0 を持つアカウントを宣言する行を追加することで、代替ルート アカウントを作成できます。
次のように入力してください:
echo root::0:0:root:/root:/bin/bash > /etc/passwd
su
(x
を削除 root はもうパスワードを必要としないことを意味します。 sed
を使用できます echo
の代わりにコマンド root シェルを取得するにはこれで十分です)
この非破壊的な方法を使用できます:
# to generate hash of the password
openssl passwd mrcake
hKLD3431415ZE
# to create a second root user with "mrcake" password
echo "root2:WVLY0mgH0RtUI:0:0:root:/root:/bin/bash" >> /etc/passwd
# to switch to a root2
su root2
Password: mrcake