为什么拥有rwx权限的组所有权还不够?

时间:2014-07-11 作者:Johannes

在Debian 7上运行PHP 5.4和Apache2,apache配置为使用userwww-data.

我试图弄明白为什么Wordpress在拥有完全权限的组所有权时无法修改其目录中的文件,而且似乎只有在拥有用户所有权时才能工作。

请允许我举例说明:

案例1将用户设置为root 和分组到www-data:

chown -R root:www-data /var/www/site-dir/wordpress-dir/

chmod -R u=rwx,g=rwx /var/www/site-dir/wordpress-dir/

当前ls -l Wordpress目录的输出:

drwxrwsr-x 5 root www-data 4096 Jul 11 15:20

  • Outcome: 当试图删除插件时,Wordpress声称它没有访问权限:

    enter image description here

    案例2的权限与1相同,但用户设置为www-data:

    chown -R www-data:www-data /var/www/site-dir/wordpress-dir/

  • Outcome: Wordpress现在可以删除插件:

    enter image description here

    我想知道这里发生了什么。用户为什么要成为www-data, 即使使用www-data 作为组,它具有完全权限?

    根据我对linux权限的(有限)了解,我假设,由于运行Wordpress的apache进程正在使用www-data 在案例1中,它可以完全访问任何需要执行的操作,因为该组递归设置为www-data, 组权限递归设置为读、写和执行。

    为什么用户需要www-data 这样才能起作用?

  • 2 个回复
    SO网友:Sebastian Schmid

    复制至少你可以在这里找到很多(可能的)解释和(可能的)解决方案:https://stackoverflow.com/questions/640409/can-i-install-update-wordpress-plugins-without-providing-ftp-access

    SO网友:SoberTillNoon

    这是因为在WP admin/includes/file中的WP\\u Filesystem方法函数中。php如果您没有在wp配置中定义FS\\U方法,它会自动确定更新方法。php。

    if ( $wp_file_owner !== false && $wp_file_owner === $temp_file_owner ) 
    
    它检查以确保脚本创建的新文件与该文件具有相同的所有者。php脚本。但是,如果定义了FS\\u方法,则会跳过所有这些检查,并且基本上会跳到返回调用。

    另一个解决方法是更改文件的所有权。php将由您的Web服务器拥有。但我觉得定义FS\\u METHOD常量是一个更好的解决方案。

    结束

    相关推荐

    强化的WordPress Linux安装

    在Linux上进行wordpress强化安装有什么最佳实践吗?我最近有一个WAMP服务器通过word press受到恶意软件攻击,因此我想使用只读apache权限加强服务器,并将其和所有未来的wordpress站点移动到Linux only该计划:chown everything root:root-R,这样apache就不能写任何东西了,这样只有所有者才能写chmod,只需将wordpress的上传/更新文件/主题/目录上传到apache:root,这最后一位是我需要帮助的位,你能告诉我wordpres