ユーザーのパスワードを変更したいです/etc/shadow
。私できないパスワードチェンジャー(例:passwd
.)は編集で行う必要があります/etc/shadow
。ファイルは/etc/shadow
マウントされたハードドライブにあり、chrootは機能しません。
たとえば、
root:$asdf.1AH.MJ3sivd4$YFoFnasdf4cZW9H6G6cbT4.1VBmasdfmv.a0wCU/i3zEFasdfasdf4W.:15843:0:99999:7:::
otheruser:$asdf.1AH.MJ3sivd4$YFoFnasdf4cZW9H6G6cbT4.1VBmasdfmv.a0wCU/i3zEFasdfasdf4W.:15843:0:99999:7:::
誰かがルートのパスワードを変更するシェルスクリプトを提供できますかsed
?awk
答え1
空のパスワードが問題にならない場合は、最も簡単な解決策は/etc/passwd
代わりにファイルを変更することです/etc/shadow
。
このファイルの例行は/etc/passwd
次のとおりです。
root:x:0:0:root:/root:/bin/bash
この行の「x」は、パスワードが実際にシャドウファイルにハッシュされた形式で保存されることを意味します。あなたができることの1つは、次のように削除することです。
root::0:0:root:/root:/bin/bash
root
その後、実際にはユーザー名と空のパスワードを使用してログインできます。
root ユーザーのパスワードを空白のままにしたくない場合は、root パスワードを削除して root ユーザーに変更します。
user@machine$ su root
password: [blank]
次に、次のコマンドを実行してルートパスワードを変更します。
root@machine# passwd
New password: [desired password]
Retype new password: [desired password]
これでルートパスワードがわかりました。
答え2
mkpasswdツールを使用してこれを実行できます。 Cyberciti.bizには、次のタイトルで使用する方法の良い紹介ガイドがあります。Linux/UNIX: mkpasswd を使用して任意のパスワードを生成する。
はい
mkpasswd --char=10 --crypt-md5
パッケージは通常呼び出されますが、makepasswd
ツールは通常呼び出されますmkpasswd
。
よりマニュアルページ詳細については。
/etc/shadow
直接コンテンツの生成
次のpythonコマンドはファイルに入る部分を作成します/etc/shadow
。
Python
$ python -c "import crypt, getpass, pwd; \
print crypt.crypt('password', '\$6\$SALTsalt\$')"
真珠
$ perl -e 'print crypt("password","\$6\$saltsalt\$") . "\n"'
次の出力を生成します。
$6$SALTsalt$UiZikbV3VeeBPsg8./Q5DAfq9aj7CVZMDU6ffBiBLgUEpxv7LMXKbcZ9JSZnYDrZQftdG319XkbLVMvWcF/Vr/
/etc/shadow 変更
以下は、上記のコマンドで新しく作成されたパスワードフィールドを使用して既存のエントリを変更するコマンドです。
perl -pe 's|(root):(\$.*?:)|\1:\$6\$SALTsalt\$UiZikbV3VeeBPsg8./Q5DAfq9aj7CVZMDU6ffBiBLgUEpxv7LMXKbcZ9JSZnYDrZQftdG319XkbLVMvWcF/Vr/:|' /etc/shadow > /etc/shadow.new
メモ:これは粗雑な例ですが、うまくいきます。ハッシュされたパスワードを生成したコマンドから結果を取得し、ドル記号($)をスラッシュ(\ $)にエスケープする必要があります。
結果は新しいファイル /etc/shadow.new に保存されます。結果を確認したら、/etc/shadow
新しいファイルに置き換えてください/etc/shadow.new
。
答え3
/etc/shadowからすべてのユーザーパスワードを削除し、システムを起動し、パスワードなしでログインしてからpasswdコマンドを使用します。可能であれば、完了するまでシステムをネットワークに接続しないでください。