安全的方式允许用户chgrp到万维网数据

我有一些小朋友用来托pipe个人网站的小型networking服务器。 偶尔他们需要为web服务器(www-data)写入的上传文件build立一个文件夹。 是否有一个安全的方式允许一个调节性用户(不是sudoers)设置一个他们不是成员的特定组?

对我来说,这似乎是一个危险的select,但我可能必须允许。 所以我对安全的方式感兴趣。 编写我自己的脚本,并允许用户sudo它可能不安全。 我想尝试使用最佳实践,而不仅仅是允许sudo chgrp,除非这确实是安全的。

一些要求*只能更改服务器的特定区域中的文件*只能更改两个和特定组*不能被黑客攻击,以允许特权升级或其他安全问题。

以特定用户身份运行PHP FastCGI可能是一个很好的解决scheme,但是如何确保安全且安全地设置?

如果你的用户的网站是在虚拟主机中分离的,在大多数情况下,一个简单而安全的方法是使用apache2-mpm-itk,它允许将每个单独的虚拟主机约束到一个特定的系统用户/组。

在安装apache2-mpm-itk之后,在apacheconfiguration的一部分添加这些行:

 <virtualhost foobar.com:80>
         ...
         <IfModule mpm_itk_module>
        分配用户ID用户ID
         </ IfModule>configuration
 </虚拟主机>

这样,vhost中的php / perl / python脚本也可以用普通的用户和权限运行。

我们可以做的一件事是使用suexec来指定每个人的PHP脚本在他们自己的用户或组帐户下运行。

为此,您还需要将PHP作为FastCGI模块运行,并在Apache下运行mod_fcgid(提示:您也可以使用Apache的Worker MPM)。 安装有点棘手 – 你需要包装脚本(你可以使用suphp解决这个问题,但是我没有尝试过)。

我拥有它,以便PHP(和所有CGI进程)以www-data:<username> 。 然后,如果用户希望能够将PHP上传到自己的文件夹,他们可以自己设置组写标志。

或者只是运行PHP作为<username>:<username> ,他们甚至不必这样做。