我正在尝试制作一个 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
所以这不起作用,但我从终端得到的输出看起来离我的目标越来越近了。
有人能帮我解决这个问题吗?
谢谢你。