如何在没有提示的情况下使用passwd设置用户密码?
我正在编写一个脚本来向系统添加大量用户。 部分原因是为每个用户设置默认密码。 如何设置用户密码而不提示我提前输入密码?
不幸的是,passwd似乎没有说明要设置的新密码。 我正在使用Ubuntu 11.10。
尝试usermod:
usermod --password PASSWORD USERNAME
唯一的问题是这需要一个预先加密的密码字符串,您必须首先生成它。
您应该查看chpasswd
命令(如果您的linux风格可用):
echo 'userid:newpasswd' | chpasswd
或者,您可以在单独的行中为每个帐户列出一个文件列表userid:passwd。
而已。
您应该使用密码老化,并设置用户,以便他们必须在首次登录时更改其密码。 看到这篇文章 。
受Eric Smith的想法启发,结合“openssl passwd”和“usermod -p”命令有效。 生成密码的散列值以及salt值。
$ openssl passwd -1 -salt 5RPVAd clear-text-passwd43
$ 1 $ 5RPVAd $ vgsoSANybLDepv2ETcUH7。
然后,将加密的字符串复制到usermod。 确保用单引号包装它。
$ usermod -p’$ 1 $ 5RPVAd $ vgsoSANybLDepv2ETcUH7。’ 根
在影子文件中查看。
$ grep root / etc / shadow
根:$ 1 $ $ 5RPVAd vgsoSANybLDepv2ETcUH7:17774:0:99999:7 :::