【问题标题】:Set owner:group and 770 chmod to apache2 created files将 owner:group 和 770 chmod 设置为 apache2 创建的文件
【发布时间】:2012-10-10 19:19:03
【问题描述】:

我想配置 apache 以创建具有个性化所有者:组和 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

【问题讨论】:

    标签: apache2 umask


    【解决方案1】:

    没有真正的方法可以做到这一点。库存版本的 Apache 没有一种机制可以根据请求在不同用户下生成工作人员。它的所有工作人员都在用户下运行,因此不能将文件写成另一个。


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

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

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

    【讨论】:

    • erf,不知道破解或提示?
    • 有几种方法,现在我真的考虑过了。虽然他们有点老套和不安全。我会更新我的答案!
    【解决方案2】:

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

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

    【讨论】:

    • 谢谢。 (对不起,我已经编辑了问题:我在 Debian 6 上)我没有 /etc/apache2/uid.conf 文件。
    猜你喜欢
    • 2014-11-13
    • 2013-07-11
    • 2016-10-04
    • 2012-05-31
    • 2019-01-19
    • 2011-06-01
    • 2021-05-29
    • 2011-09-05
    相关资源
    最近更新 更多