我不时遇到这个问题,我使用主机给我的 FTP 帐户并在 Wordpress FTP 中使用它们。但是由于某些原因,例如在更新主题时,新主题是在 apache/apache 而不是 user/psacln 用户名/组下创建的。所以那时我不能删除这些文件或对这些文件做任何事情,因为我在 psacln 组下。
我想了解更多关于为什么会发生这种情况以避免这个问题 - 欢迎任何建议!
提前致谢。
我不时遇到这个问题,我使用主机给我的 FTP 帐户并在 Wordpress FTP 中使用它们。但是由于某些原因,例如在更新主题时,新主题是在 apache/apache 而不是 user/psacln 用户名/组下创建的。所以那时我不能删除这些文件或对这些文件做任何事情,因为我在 psacln 组下。
我想了解更多关于为什么会发生这种情况以避免这个问题 - 欢迎任何建议!
提前致谢。
当您通过 wordpess 管理页面(如主题)上传文件时,以 apache 用户身份运行的 httpd 进程实际上是在您的系统上创建它们 - 因此它们归 apache 用户所有。我建议使用此选项来解决此问题:
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 设置为组只读。
因为 apache 的子进程在 apache 的用户 ID 下运行,并且 unix 系统上的“普通用户”不能使文件归某个 OTHER 用户所有。只有 root 帐户可以“放弃”所有权。
为什么?对于普通用户来说,创建一个由 root 拥有或由另一个用户拥有的文件是微不足道的。如果给定系统以用户配额运行,这将允许用户完全破坏配额,或者通过“给”他们一堆大文件并超过该用户的配额来拒绝其他人访问。
如果您需要访问这些文件,无论 unix 所有权如何,您都可以考虑使用 POSIX acls,它存在于/超出 unix 权限。