繁体   English   中英

如何使用busybox和openssl更改脚本中的用户密码?

[英]How do you change a user password in a script with busybox and openssl?

我需要将用户帐户和密码同步到安装了busyboxopenssl的系统上的外部源。 当外部源告诉我的系统更新凭据时,如何在脚本中更改用户的密码? 我将以纯文本密码。

这必须是自动化的,从我可以告诉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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM