设置所有者:group和770 chmod到apache2创建的文件

时间:2012-10-10 19:19:04

标签: apache2 umask

我想配置apache来创建具有个性化所有者:group和chmod的文件。 我有一个网站文件夹,需要由apache +(ftp)用户操作。

实际上我做了一个(其中'mygroup'是一组ftp用户)

chown www-data:mygroup -R /my/website/files
chmod 770 -R /my/website/files

但是当apache2操纵文件并创建文件或文件夹时,它们有

  

-rw-r - r-- 1 www-data www-data

有关配置apache2的想法吗?

编辑:Debian 6

2 个答案:

答案 0 :(得分:1)

没有真正的良好的方式来做这个AFAIK。 Apache的库存版本没有一种机制,可以根据请求在不同用户下生成工作者。它的所有工作人员都在用户之下操作,因此无法将文件写为另一个文件。


话虽如此,有一些方法可以解决这个问题。

第一种方法需要您以root身份运行Apache。 Apache位于您的服务器上,在非特权用户下运行。非特权用户无法更改他们在其下运行的用户。只有以root身份运行的进程才能这样做。如果您愿意以root身份运行Apache,则可以使用多进程模块here。它的作用是允许您在不同的用户(在您的配置中定义)下运行每个VHOST。这意味着您现在还需要使用自己的VHOST设置每个用户。这种方式可行,但这样做会牺牲一些安全性。

第二种更安全但更“hacky”的方法是为每个用户运行全新的Apache版本。所以你有一个拥有自己的配置文件的Apache,它只适用于userA,另一个拥有自己不同的独立配置的Apache,仅适用于userB等。每个Apache实例都可以监听不同的端口(即userA监听端口8080) ,端口8081上的userB ...)。然后,您可以使用某种前端反向代理对其进行排序,并将流量路由到适当的Apache实例。

答案 1 :(得分:0)

看起来您正在openSUSE或SLES下工作。 如果是这样,请查看文件/etc/apache2/uid.conf ...

对于umask:实际上不确定。当然有效的是在apache用户主目录下创建一个.profile文件,并在那里设置umask。但我敢打赌,有一个更优雅的解决方案!