将sudo限制为只有一个目录,sudoers文件是子目录

所以我想限制Apache只更改某个文件夹和所有子目录的权限,所以这是我在sudoers文件中

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

但是这似乎并不奏效。 我确定我可以通过删除子文件夹的限制来实现它,但这似乎很危险,因为这会给潜在的黑客无限制访问。

那么有没有办法限制Apache只更改“网站”文件夹内的文件和文件夹,或者我坚持给无限访问chmod / chown

使用这种方法有没有什么大的安全漏洞?

将chmod命令作为一个只能由root运行的shell脚本,然后允许该命令在sudo中运行可能会更好。

好吧,显然这并没有使用我期待的全部正则expression式,一个普通的明星做了这个诀窍:

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

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