如何使用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 【问题描述】:我需要在安装了 busybox 和 openssl 的系统上将用户帐户和密码同步到外部源。当外部来源告诉我的系统更新凭据时,如何在脚本中更改用户密码?我会得到纯文本的密码。
这必须是自动化的,据我所知,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 在脚本中更改用户密码?的主要内容,如果未能解决你的问题,请参考以下文章