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

Ram*_*h.T 3 sudo sh

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

我试过这样的.

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

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

int*_*tgr 6

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

sudo /usr/local/sbin/deploy | sudo ./tmp/cp1.sh
Run Code Online (Sandbox Code Playgroud)

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

sudo sh -c '/usr/local/sbin/deploy | ./tmp/cp1.sh'
Run Code Online (Sandbox Code Playgroud)

  • 虽然请记住,当您使用sudo生成shell时,您刚刚通过提供用户密码创建了一个root shell,这就是为什么IMO不应该在安全系统上启用它. (2认同)