如何让bash脚本请求密码?
我想确保用密码执行程序。
我如何在bash中做到这一点?
stty_orig=`stty -g` # save original terminal setting.
stty -echo # turn-off echoing.
read passwd # read the password
stty $stty_orig # restore terminal setting.
该命令将从标准输入读入var pwd(禁用echo):
IFS= read -s -p Password: pwd
取消设置IFS将允许在密码中引入和结尾空白(在某些环境中可能会支持这种空白,所以最好在脚本输入用户凭据期间支持它)
验证前导/尾随空白是否可以正确处理,您可以使用:
echo -n "$pwd" | hexdump -C
注意:不要使用真实密码,因为它会转储到控制台!
HT:Ron DuPlain提供关于IFS未定的附加信息。
如果您需要获取密码以作为参数提供给程序,则可以通过建议来关闭回声。
在脚本中进行passwd检查不起作用 - 如果用户可以执行bash脚本,他们也有权读取它并查看密码。
如果你只想让拥有passwd的人运行一个程序,那么安全的方法是创建一个拥有该程序的新用户帐户,并有一个使用'sudo'作为该用户运行该程序的脚本 - 它会提示用户以安全的方式进行密码传输。
链接地址: http://www.djcxy.com/p/4369.html