我偶尔会遇到这个问题,我使用主机给我的FTP帐户并在Wordpress FTP中使用它们。但出于某种原因,例如在更新主题时,新主题在apache / apache下创建,而不是user / psacln用户名/组。所以在那时我不能删除或对这些文件做任何事情,因为我在psacln组下。
我想了解更多关于为什么会出现这种情况以避免这个问题 - 欢迎任何建议!
提前致谢。
答案 0 :(得分:3)
当您通过wordpess管理页面(如主题)上传文件时,作为apache用户运行的httpd进程实际上是在您的系统上创建它们 - 因此它们归Apache用户所有。我建议这个选项来解决这个问题:
设置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权限之上/之外。