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

7
我需要在一个安装了 busyboxopenssl 的系统上,将用户帐户和密码与外部源同步。当外部源告诉我的系统更新凭据时,我该如何在脚本中更改用户的密码?我将使用明文密码。
这必须是自动化的,从我所了解的情况来看,忙碌盒子 passwd 是交互式的,我不想编写类似于 passwd 的 expect 类型脚本,如果有可能的话。看起来 openssl 可以生成密码哈希值 (openssl passwd -1 -salt "abcdefgh" {password}),但我是否需要直接修改 /etc/shadow?
Busybox 有 这些 命令可用。
2个回答

8

原来当前版本的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

7
您可以编写如下脚本来更新密码。将以下文本放入文件中并执行它。它会更改您的密码。
#!/bin/sh passwd << EOF <旧密码> <新密码> <新密码> EOF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接