如何在没有提示的情况下使用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 :::