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

我有一个命令,我通过sudo运行。 该命令需要将其工作目录设置为安装命令的目录。 调用sudo的用户在这个目录中没有权限,所以我不能事先cd

所以基本上我喜欢在/ etc / sudoers中能够包含的东西是这样的:

 appuser localhost = (appowner) NOPASSWD: cd /opt/app/bin \; ./binary 

我知道我可以使用围绕binary包装脚本,但我宁愿不…任何build议?

你将不得不使用包装脚本。 Runas Tag_Spec之后的参数被解释为Cmnd_List,它是可由指定用户运行的命令的列表等。

正如你注意到的那样,解决scheme是使用包装脚本

 appuser localhost = (appowner) NOPASSWD: /path/to/wrapper 

确保包装脚本具有合适的权限,特别是不可写入。