Linuxイメージのルートパスワードの修正

Linuxイメージのルートパスワードの修正

私はJessieバージョンのDebianを作成しています。パスワードは/etc/shadowビルドツリーに保存されますが、明らかにソルトされているため、ファイル編集だけでは変更できません。これが私のインストールされているシステムであればに電話することができますが、passwdここではビルドツリーのファイルのパスワードを変更したいと思います。

新しいバージョンでSDをフラッシュする前にルートパスワードを変更するにはどうすればよいですか?

ベストアンサー1

ファイルを含むディレクトリツリーを含む手順…/etc/shadow(ファイルシステムイメージを構築する前)で、必要なパスワードハッシュを挿入するようにファイルを変更します。

最も簡単な方法は、十分に新しいバージョンを使用することです。chpasswdLinuxシャドウユーティリティスイートのツール(Debian wheezyは十分に新機能です)とこの-Rオプション。使用例:

chpasswd -R /path/to/build/tree <passwords.txt

passwords.txt次の行が含まれています。

root:swordfish
alibaba:opensesame

ビルド環境がそれをサポートしていない場合は、chpasswd -R次を呼び出してパスワードハッシュを生成するツールを使用できます。crypt関数を作成し、shadowテキスト操作を介してファイルに挿入します。たとえば(テストされていないコード):

#!/usr/bin/python
import base64, crypt, os, re, sys
for line in sys.stdin.readlines():
    (username, password) = line.strip().split(":")
    salt = "$6$" + base64.b64encode(os.urandom(6))
    hashes[username] = crypt.crypt(password, salt)
old_shadow = open("etc/shadow")
new_shadow = open("etc/shadow.making", "w")
for line in old_shadow.readlines():
    (username, password, trail) = line.lstrip().split(":", 3)
    if hashes.has_key(username):
        line = username + ":" + hashes[username] + ":" + trail
    new_shadow.write(line)
old_shadow.close()
new_shadow.close()
os.rename("etc/shadow.making", "etc/shadow")

おすすめ記事