7

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

这必须是自动化的,据我所知,busybox passwd 是交互式的,如果可能的话,我并不特别想为 passwd 编写期望类型的脚本。看起来 openssl 可以生成密码哈希(openssl passwd -1 -salt "abcdefgh" {password}),但我必须直接修改 /etc/shadow 吗?

Busybox 提供了这些命令。

4

2 回答 2

8

原来busybox的当前版本有chpasswd源代码)。chpasswd 在标准输入上采用冒号分隔的用户名:密码对。我不知道我是否可以更新系统上的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
于 2010-01-13T20:27:03.610 回答
7

您可以编写一个像这样的小脚本来更新密码。将以下文本放入文件并执行。它会更改您的密码。

#!/bin/sh
passwd << EOF
<旧密码>
<新密码>
<新密码>
EOF

于 2010-01-13T20:13:55.253 回答