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

Posted

技术标签:

【中文标题】如何使用busybox 和openssl 在脚本中更改用户密码?【英文标题】:How do you change a user password in a script with busybox and openssl? 【发布时间】:2011-01-04 18:27:40 【问题描述】:

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

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

Busybox 有可用的these 命令。

【问题讨论】:

【参考方案1】:

原来busybox的当前版本有chpasswd (source code)。 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

【讨论】:

【参考方案2】:

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

#!/bin/sh 密码 EOF

【讨论】:

以上是关于如何使用busybox 和openssl 在脚本中更改用户密码?的主要内容,如果未能解决你的问题,请参考以下文章

如何安装openssl

如何在 BusyBox shell 中生成随机数

OpenSSL的编译和使用

busybox浅析

使用 BusyBox 将 2 行合并为 key=value 字符串

如何使用 OpenSSL 使用 AES 加密文件?