我有一个通过 sudo 运行的命令。此命令需要将其工作目录设置为安装该命令的目录。调用 sudo 的用户在此目录中没有权限,因此我无法事先设置cd
。
因此基本上我希望能够在 /etc/sudoers 中包含如下内容:
appuser localhost = (appowner) NOPASSWD: cd /opt/app/bin \; ./binary
我知道我可以使用包装脚本binary
但是我宁愿不...有什么建议吗?
答案1
您必须使用包装器脚本。Runas Tag_Spec 后面的参数被解释为 Cmnd_List,它是可由指定用户等运行的命令列表。
解决方案是,正如您注意到的那样,使用包装脚本
appuser localhost = (appowner) NOPASSWD: /path/to/wrapper
确保包装脚本具有适当的权限,尤其是不可写的。