3

有人可以举一个通过 sudo 用户运行 shellscript 的例子吗?

我试过这样。

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

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

4

2 回答 2

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'
于 2009-11-16T15:42:50.380 回答
0

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

于 2009-11-16T15:44:53.967 回答