如何在需要root访问权限时在bash脚本中将变量作为密码进行管道传输

时间:2013-04-29 22:15:56

标签: linux bash shell unix terminal

我正在尝试创建一个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

所以这不起作用,但我从终端获得的输出看起来像是越来越接近我的目标了。

有人能帮我解决这个问题吗?

谢谢。

0 个答案:

没有答案