我正在尝试创建一个shell脚本,它在开始时要求用户输入密码,然后将其存储在变量中,以便每次脚本需要root访问权时都可以使用它。
我的想法是做这样的事情:
read -s "Please enter your password: " PASSWORD
echo -e $PASSWORD | su -c 'do some root action here'
但这不起作用。怎么能实现呢?
修改 好的,所以我开始调查期望,这是我到目前为止所得到的:
#!/usr/bin/env bash
user=$(whoami)
echo "Pleas enter your root password. [Followed by Enter]"
read -s "Password:" PASSWORD
/usr/bin/expect <<EOD
spawn su -c 'echo \"$user ALL=(ALL) ALL\" >> /etc/sudoers'
expect "Password:"
send $PASSWORD
interact
EOD
所以这不起作用,但我从终端获得的输出看起来像是越来越接近我的目标了。
有人能帮我解决这个问题吗?
谢谢。