有人可以举一个通过 sudo 用户运行 shellscript 的例子吗?
我试过这样。
sudo /usr/local/sbin/deploy | ./tmp/cp1.sh
上述脚本作为普通用户而不是 sudo 用户执行。
使用此命令,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'
问题是当你想这样做时,你需要有 sudo 密码并在 sudoers 文件中,否则它将失败。但是您可以尝试使用 gksudo(sudo 的图形版本),所以当它被调用时,它会要求输入密码。