最初に root パスワードがなく rootfs を生成した後、ansible でコンテナを生成するので、nspawn コンテナのルートパスワードを変更したいと思います。
パスワード変更を使用するのは良い考えですか?変えるモジュールは/etc/shadow
ファイルのルート行を置き換えますか?
非対話型でパスワードを更新する他の方法はありますか?
私は試した:
echo user:pass | /usr/sbin/chpasswd
しかし、エコーは機能しません。 execv() を受け取ります。failed: No such file or directory
答え1
passwd
この状況に適用されます。オプションがあります--stdin
。誰かが実行すると表示される可能性があるため、echo my-secret-password | passwd --stdin
使用しないでください。運が悪い場合は、ログファイルに表示されることもあります。echo my-secret-password
ps
#!/bin/sh
PASSWORD=...
passwd root --stdin <<EOF
$PASSWORD
EOF