chrootでパスワードを変更するBashスクリプト

chrootでパスワードを変更するBashスクリプト

私はLinux From Scratch Live CDを作成し、そのためのインストーラスクリプトを書いています。このスクリプトには、ユーザーからユーザー名とパスワードを取得し、ユーザーを作成する手順があります。マウントされたファイルシステムは次にマウントされます。/mntユーザー名は次に保存されます。$USERパスワードは次に保存されます。$PASS

私が使用するユーザーを作成するには

chroot /mnt useradd $USER -s /bin/bash -m

私が使用するパスワードを変更するには

chroot /mnt echo "$USER:$PASS"|chpasswd

しかし、マウントされたファイルシステムから起動したときにユーザーが作成されたがパスワードが割り当てられていないことがわかりました。私は何が間違っていましたか?

答え1

この試み。次の状況を避けるchroot /mnt echo "$USER:$PASS"|chpasswdchrootで実行されているechoとchpasswdのために失敗しました。外部chroot。

echo "$USER:$PASS" >/mnt/foo
chroot /mnt 'chpasswd </foo'
rm /mnt/foo

関連情報