Bash 脚本在 chroot 中更改密码

Bash 脚本在 chroot 中更改密码

我已经构建了一张 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"|chpasswd由于 chroot 中运行的 echo 和 chpasswd 运行而失败外部chroot。

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

相关内容