繁体   English   中英

在脚本中从sudo逃脱

[英]Escaping from sudo within a script

我有一个脚本,将另一个脚本称为sudo。 从第二个剧本中,我希望能够到没有 sudo权限运行的另一个进程(在讨论的过程是brew ,不与发挥很好sudo )。

这是有问题的代码:

scriptA.sh:

#!/bin/sh

sudo ./scriptB.sh

scriptB.sh:

#!/bin/sh

# This runs as sudo, but I need it to run as a regular user e.g. `username`
brew update

我尝试了su -c "brew update" -s /bin/sh username ,但是OS X的su不允许c标志。

再次使用sudo

sudo -u username brew update

超级用户可以使用su命令成为任何其他用户。 所以

su otheruser -c "command to execute"

OS X su确实允许使用-c选项。 您只需将其放在用户名之后。 从手册页:

如果在命令行上提供了可选的args,则将它们传递到目标登录名的登录shell。 请注意,目标登录名之前的所有命令行参数均由su本身处理,目标登录名之后的所有内容都传递给登录shell。

在这种情况下, -c不是su命令的选项,而是登录shell的选项。 而且大多数shell都使用-c选项来指定要执行的命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM