在 sudoers 文件中对路径使用通配符

在 sudoers 文件中对路径使用通配符

我正在尝试设置 sudoers 文件以允许用户仅在特定目录下更改文件

例如

%hmis    ALL=/bin/chown eng:hmis /usr/lib/bogimac/bsc/*

这并不好,因为黑客可以做以下事情:

sudo chown eng:hmis /usr/lib/bogimac/bsc/xctrl.py /etc/important_file

有人知道如何预防这种情况吗?

谢谢

答案1

即使你解决了眼前的问题,有人仍然可能会输入...

sudo chown eng:hmis /usr/lib/bogimac/bsc/../../../etc/shadow

或者上述的任何其他排列。 sudo对于这种限制来说,并不是真正合适的工具。如果您真的需要委派在特定层次结构中更改所有权的能力,那么最好的选择可能是用您最喜欢的高级脚本语言编写一个简单的包装器脚本,该脚本遍历其路径参数,对其进行清理,并根据允许的前缀列表对其进行检查。

答案2

我们已经实施了以下措施,似乎有效

Cmnd_Alias EDIT =  /bin/rvi /usr/lib/bogimac/bsc/*, \
                  !/bin/rvi /usr/lib/bogimac/bsc/* *, \
                  !/bin/rvi /usr/lib/bogimac/bsc/*..*

答案3

感谢您的回答,我没有想到这一点。因为我只需要对这个特定命令使用 chown 命令:

chown eng:hmis /usr/lib/bogimac/bsc/*

我决定制作一个只能由 root 运行的 shell 脚本,然后允许该命令在 sudo 中运行,请参阅通过 sudoers 文件将 sudo 限制在一个目录及其子目录中

相关内容