如何通过sudo用户执行shell脚本

时间:2009-11-16 15:39:27

标签: sh sudo

有人可以通过sudo用户提供运行shellcript的示例吗?

我试过这样。

sudo / usr / local / sbin / deploy | ./tmp/cp1.sh

上述脚本作为普通用户执行,而不是sudo用户。

2 个答案:

答案 0 :(得分:6)

使用此命令,deploy脚本在root用户下执行,但./tmp/cp1.sh脚本由当前shell以当前权限运行。为避免这种情况,您可以将sudo添加到两个前缀:

sudo /usr/local/sbin/deploy | sudo ./tmp/cp1.sh

或者你可以在sudo中生成一个shell,所以shell已经以root身份运行了:

sudo sh -c '/usr/local/sbin/deploy | ./tmp/cp1.sh'

答案 1 :(得分:0)

问题是,当你想要这样做时,你需要有sudo密码并且在sudoers文件中,否则它将失败。 但你可以尝试使用gksudo(sudo的图形版本),所以当它被调用时会要求输入密码。