我如何让用户仅在特定路径上执行“sudo”任何命令?

我如何让用户仅在特定路径上执行“sudo”任何命令?

我想向用户授予 sudo 权限,但仅限于特定路径。例如:

user@domain $> sudo touch /etc/test/directory/samplefile

该用户对不属于该用户的路径没有权限 /etc/test/directory,并且我不想进一步开放权限,我不想让该用户成为目录组的一部分,因为这也会赋予该用户对其他目录的权限。

到目前为止,我已尝试在 /etc/sudoers 文件中添加以下内容:

user ALL:/etc/test/directory/=(ALL) NOPASSWD: ALL

但根据 visudo,该语法不正确。

关于如何实施这种方法有什么想法吗?

答案1

您可以通过以下方式做到这一点:sudo允许用户(一个/一些/全部)以用户身份运行脚本对该目录具有访问权限的组成员等。

这一页 - https://lifecs.likai.org/2016/02/generic-setuidsetgid-wrapper-for-scripts.html似乎很好地解决了你的问题,sudoers建议的一行 -

ALL ALL = (script-owner) NOPASSWD: /path/to/script

运行 sudo -u script-owner /path/to/script

相关内容