nspawn 容器的非交互式密码更改

nspawn 容器的非交互式密码更改

我想更改 nspawn 容器的 root 的 passwd,因为我在创建 rootfs 之后就通过 ansible 创建容器,因为一开始它没有任何 root 密码。

使用更改密码是个好主意吗代替模块替换/etc/shadow文件中的根行?

还有其他方法可以非交互地更新密码吗?

我努力了 :

echo user:pass | /usr/sbin/chpasswd

但 echo 不起作用,我收到 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

相关内容