我正在编写一个脚本来向系统添加大量用户。其中一部分涉及为每个用户设置默认密码。如何设置用户的密码而不提示我预先输入密码?
不幸的是, passwd 似乎没有说明要设置的新密码的参数。我正在使用 Ubuntu 11.10。
Cae*_*ium 32
尝试用户模式:
usermod --password PASSWORD USERNAME
Run Code Online (Sandbox Code Playgroud)
唯一的问题是这需要一个预先加密的密码字符串,您必须先生成它。
为了生成加密的密码,您可以使用openssl
. 例如:
usermod --password $(echo MY_NEW_PASSWORD | openssl passwd -1 -stdin) USERNAME
Run Code Online (Sandbox Code Playgroud)
小智 23
您应该查看chpasswd
命令(如果在您的 linux 版本中可用):
echo 'userid:newpasswd' | chpasswd
Run Code Online (Sandbox Code Playgroud)
或者,您可以在单独的行上为每个帐户列出 userid:passwd 文件。
就是这样。
小智 5
受到埃里克·史密斯想法的启发,组合openssl passwd
和usermod -p
指挥奏效了。生成密码的哈希值以及盐值。
$ openssl passwd -1 -salt 5RPVAd clear-text-passwd43
$1$5RPVAd$vgsoSANybLDepv2ETcUH7.
Run Code Online (Sandbox Code Playgroud)
然后,将加密的字符串复制到usermod。确保用单引号将其括起来。
$ usermod -p '$1$5RPVAd$vgsoSANybLDepv2ETcUH7.' root
Run Code Online (Sandbox Code Playgroud)
在影子文件中检查一下。
$ grep root /etc/shadow
root:$1$5RPVAd$vgsoSANybLDepv2ETcUH7.:17774:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57302 次 |
最近记录: |