设置通过 sudo 运行的命令的工作目录?

设置通过 sudo 运行的命令的工作目录?

我有一个通过 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

确保包装脚本具有适当的权限,尤其是不可写的。

相关内容