[英]How do you change a user password in a script with busybox and openssl?
我需要将用户帐户和密码同步到安装了busybox和openssl的系统上的外部源。 当外部源告诉我的系统更新凭据时,如何在脚本中更改用户的密码? 我将以纯文本密码。
这必须是自动化的,从我可以告诉busybox passwd是交互式的,我不特别想为passwd写一个expect-type脚本,如果这是可能的话。 看起来openssl可以生成密码哈希( openssl passwd -1 -salt“abcdefgh”{password} ),但是我必须直接修改/ etc / shadow吗?
Busybox提供了这些命令。
您可以编写这样的小脚本来更新密码。 将以下文本放在一个文件中并执行它。 它会更改您的密码。
#!/ bin / sh的
passwd << EOF
<旧密码>
<新密码>
<新密码>
EOF
原来版本的busybox有chpasswd ( 源代码 )。 chpasswd在stdin上使用冒号分隔的用户名:密码。 我不知道我是否可以更新系统上的busybox,但我会留下这个答案以防其他人来看。
从busybox文档:
chpasswd
chpasswd [--md5|--encrypted]
Read user:password from stdin and update /etc/passwd
Options:
-e,--encrypted Supplied passwords are in encrypted form
-m,--md5 Use MD5 encryption instead of DES
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.