如何让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

上一篇: How to make bash script ask for a password?

下一篇: How to compare arrays in JavaScript?