7

busyboxopensslがインストールされているシステムの外部ソースにユーザーアカウントとパスワードを同期する必要があります。外部ソースがシステムに資格情報を更新するように指示した場合、スクリプトでユーザーのパスワードを変更するにはどうすればよいですか?パスワードはプレーンテキストで入力します。

これは自動化する必要があり、busybox passwdはインタラクティブであり、可能であれば、passwdのexpectタイプのスクリプトを特に書きたくありません。opensslはパスワードハッシュ(openssl passwd -1 -salt "abcdefgh" {password})を生成できるようですが、/ etc / shadowを直接変更する必要がありますか?

Busyboxではこれらのコマンドを利用できます。

4

2 に答える 2

8

現在のバージョンのbusyboxにはchpasswdソースコード)があることがわかりました。chpasswdは、stdinでコロンで区切られたペアusername:passwordを取ります。システムのbusyboxを更新できるかどうかはわかりませんが、他の誰かが探しに来た場合に備えて、この回答を残しておきます。

busyboxのドキュメントから:

chpasswd
chpasswd [--md5|--encrypted]

Read user:password from stdin and update /etc/passwd

Options:

        -e,--encrypted  Supplied passwords are in encrypted form
        -m,--md5        Use MD5 encryption instead of DES
于 2010-01-13T20:27:03.610 に答える
7

このような小さなスクリプトを記述して、パスワードを更新できます。次のテキストをファイルに入れて実行します。パスワードが変更されます。

#!/ bin / sh
passwd <<EOF
<古いパスワード>
<新しいパスワード>
<新しいパスワード>
EOF

于 2010-01-13T20:13:55.253 に答える