3

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

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

提前致谢。

4

2 回答 2

3

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

  1. 将您自己和 apache 添加到一个名为“wordpress”的新组中
  2. 用于将您的 wordpress 的组所有权更改为新组
  3. 使用设置 sgid 权限位和组对 wordpress docroot 中所有目录的写入权限。

sgid 位的设置将使添加到目录中的所有文件成为同一组所有者。

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

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 设置为组只读。

于 2013-02-15T18:49:52.527 回答
0

因为 apache 的子进程在 apache 的用户 ID 下运行,并且 unix 系统上的“普通用户”不能使文件归某个 OTHER 用户所有。只有 root 帐户可以“放弃”所有权。

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

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

于 2013-02-15T18:43:51.443 回答