为什么apache拥有的文件是由wordpress创建的?

时间:2013-02-15 18:37:52

标签: wordpress apache permissions ftp

我偶尔会遇到这个问题,我使用主机给我的FTP帐户并在Wordpress FTP中使用它们。但出于某种原因,例如在更新主题时,新主题在apache / apache下创建,而不是user / psacln用户名/组。所以在那时我不能删除或对这些文件做任何事情,因为我在psacln组下。

我想了解更多关于为什么会出现这种情况以避免这个问题 - 欢迎任何建议!

提前致谢。

2 个答案:

答案 0 :(得分:3)

当您通过wordpess管理页面(如主题)上传文件时,作为apache用户运行的httpd进程实际上是在您的系统上创建它们 - 因此它们归Apache用户所有。我建议这个选项来解决这个问题:

  1. 将自己和apache添加到名为“wordpress”
  2. 的新组中
  3. 用于将wordpress的群组所有权更改为新群组
  4. 使用将sgid权限位和组写权限设置为wordpress docroot中的所有目录。
  5. 设置sgid位将使添加到目录的所有文件成为同一组所有者。

    假设您已将自己和apache添加到同一组,这里是linux命令来设置目录以确保文件可以创建为wordpress组中的所有文件:

    chown -R :wordpress /path/to/wordpress/docroot/ 
    chmod  -R g+w /path/to/wordpress/docroot/
    find  /path/to/wordpress/docroot/ -type d -print | while read i; do SAVEIFS=$IFS; IFS=$(echo -en "\n\b");chmod g+s $i; IFS=$SAVEIFS; done
    

    可能需要的其他内容:

    如果您看到apache在没有写入的情况下创建具有组权限的文件,则可能需要更改apache用户的默认umask以创建新文件。默认情况下,它应该是所有者和组写入允许,但我知道一些帐户(如root用户)将默认的umask设置为仅读组。

答案 1 :(得分:0)

因为apache的worker子项在apache的userid下运行,而unix系统上的“普通用户”无法使某些OTHER用户拥有文件。只有root帐户才能“放弃”所有权。

为什么呢?普通用户创建由root拥有的文件或由其他用户拥有的文件是微不足道的。如果给定系统使用用户配额运行,这将允许用户完全破坏配额,或通过“给予”一堆巨大的文件并超过该用户的配额来拒绝其他人访问。

如果您需要访问这些文件,无论unix所有权如何,您都可以考虑使用POSIX acls,它存在于unix权限之上/之外。