[英]How do you change a user password in a script with busybox and openssl?
我需要將用戶帳戶和密碼同步到安裝了busybox和openssl的系統上的外部源。 當外部源告訴我的系統更新憑據時,如何在腳本中更改用戶的密碼? 我將以純文本密碼。
這必須是自動化的,從我可以告訴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.