gpt4 book ai didi

bash - 用 bash expect 设置 .htpasswd

转载 作者:行者123 更新时间:2023-11-29 09:24:17 25 4
gpt4 key购买 nike

我试图在 Apache 的 .htpasswd 中自动设置用户密码,但这个脚本似乎并没有真正设置密码。我错过了什么?谢谢!

#!/bin/bash

PASSWORD=`tr -dc a-z0-9_ < /dev/urandom | head -c 10`

cat << EOF | /usr/bin/expect
spawn /usr/bin/htpasswd -c /var/.htpasswd testuser
expect "assword:"
send "$PASSWORD\r"
expect "assword:"
send "$PASSWORD\r"
EOF

echo -e "\nPassword set to: $PASSWORD\n"

最佳答案

您可以使用 -b 标志在命令行上指定密码。

#!/bin/bash

PASSWORD=`tr -dc a-z0-9_ < /dev/urandom | head -c 10`
htpasswd -cb /var/.htpasswd testuser $PASSWORD
echo Password set to: $PASSWORD

# output:
# Adding password for user testuser
# Password set to: gzu00n4lp8

为了澄清,这里有一个使用 expect 的版本:

#!/bin/bash

PASSWORD=`tr -dc a-z0-9_ < /dev/urandom | head -c 10`

expect << EOF
spawn htpasswd -c /var/.htpasswd testuser
expect {
"New password:" { send "$PASSWORD\r"; exp_continue }
"Re-type new password:" { send "$PASSWORD\r"; exp_continue }
}
EOF

echo Password set to: $PASSWORD

关于bash - 用 bash expect 设置 .htpasswd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14078030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com