![如何从脚本非交互地创建用户帐户而不看到密码?](https://linux22.com/image/5339/%E5%A6%82%E4%BD%95%E4%BB%8E%E8%84%9A%E6%9C%AC%E9%9D%9E%E4%BA%A4%E4%BA%92%E5%9C%B0%E5%88%9B%E5%BB%BA%E7%94%A8%E6%88%B7%E5%B8%90%E6%88%B7%E8%80%8C%E4%B8%8D%E7%9C%8B%E5%88%B0%E5%AF%86%E7%A0%81%EF%BC%9F.png)
页面man
说useradd
http://linux.die.net/man/8/adduser
-p, --password PASSWORD 加密密码,由 crypt(3) 返回。默认是禁用密码。注意:不建议使用此选项,因为列出进程的用户将看到密码(或加密密码)。
您应该确保密码符合系统的密码策略。
但似乎没有其他方法可以创建帐户。另外,它说默认是禁用密码 - 这是什么意思?
我正在使用 Debian Wheezy
答案1
取自此脚本https://gist.github.com/Fluidbyte/6321547
有一种很棒的语言叫做expect,它可以与程序交互。这就是您要找的东西。您始终可以修改此设置以从外部源获取用户名和密码。
#!/usr/bin/expect
set user "username"
set password "password"
send "useradd -m $user\r"
# Expect prompt
expect "$"
# Set password
send "passwd $user\r"
# Expect password prompt and send pass
expect "ass"
send "$password\r"
# Expect confirm
expect "ass"
send "$password\r"