通过 sudoers 文件将 sudo 限制在一个目录及其子目录中

通过 sudoers 文件将 sudo 限制在一个目录及其子目录中

因此,我想限制 Apache 仅更改某个文件夹及其所有子目录中的权限,因此这就是我的 sudoers 文件中的内容

apache ALL= (ALL) NOPASSWD: /bin/chmod -R [g+ws] /var/www/sites/[a-z]+

但这似乎不起作用。我确信我可以通过删除对子文件夹的限制来让它工作,但这似乎很危险,因为它会给潜在的黑客无限的访问权限。

那么有没有办法限制 apache 仅更改“sites”文件夹内的文件和文件夹,或者我是否只能使用 chmod / chown 提供无限制访问权限?

使用这种方法是否存在重大安全漏洞?

答案1

最好将 chmod 命令设为仅由 root 运行的 shell 脚本,然后允许该命令在 sudo 中运行。

答案2

好的,显然这并没有使用我期望的完整正则表达式,一个常规的星号就可以了:

apache ALL= (ALL) NOPASSWD: /bin/chmod -R [go]+ws /var/www/sites/*

这非常危险。它将打开您服务器的漏洞。如果用户设法运行 chmod -R g+w /var/www/sites/../../../../etc/shadow,会发生什么?

相关内容