我想更改 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