Php WordPress的正确文件权限

Php WordPress的正确文件权限,php,wordpress,chmod,Php,Wordpress,Chmod,我查看了一下,但没有找到关于最佳文件权限的任何详细信息。我还看了WordPress表格中的一些问题,但任何建议使用777的人显然都需要上一堂安全课 简言之,我的问题是。我应该对以下内容拥有哪些权限: 存储所有WordPress内容的根文件夹 wp管理员 可湿性粉剂含量 可湿性粉剂包括 然后是每个文件夹中的所有文件?设置WP时,您(Web服务器)可能需要对这些文件进行写访问。因此,访问权限可能需要放宽 chown www-data:www-data-R*#让Apache成为所有者 找到-d型-ex

我查看了一下,但没有找到关于最佳文件权限的任何详细信息。我还看了WordPress表格中的一些问题,但任何建议使用777的人显然都需要上一堂安全课

简言之,我的问题是。我应该对以下内容拥有哪些权限:

  • 存储所有WordPress内容的根文件夹
  • wp管理员
  • 可湿性粉剂含量
  • 可湿性粉剂包括
  • 然后是每个文件夹中的所有文件?

    设置WP时,您(Web服务器)可能需要对这些文件进行写访问。因此,访问权限可能需要放宽

    chown www-data:www-data-R*#让Apache成为所有者
    找到-d型-exec chmod 755{}\#更改目录权限rwxr-xr-x
    找到-f型-exec chmod 644{}\#更改文件权限rw-r--r--
    
    安装完成后,您应该严格限制访问权限,因为除wp之外的所有文件都只能由您的用户帐户写入。wp内容也必须可由www数据写入

    chown:-R*#让您的用户帐户成为所有者
    chown www数据:www数据wp内容#让apache成为wp内容的所有者
    
    也许你想在以后更改wp内容中的内容。在这种情况下,你可以

    • 使用
      su
      将用户临时更改为www数据
    • 授予wp内容组写入权限775并加入组www数据或
    • 使用为用户授予对文件夹的访问权限

    无论您做什么,请确保文件具有www数据的rw权限。

    将所有wp文件的完全访问权授予
    www数据
    用户(在本例中为web服务器用户)可能会很危险。
    cd plugins
    sudo chown -R www-data:wp-user wordfence/
    
    因此,不要这样做:

    不过,在安装或升级WordPress及其插件时,它可能会很有用。但是当您完成时,将wp文件归web服务器所有不再是一个好主意

    它基本上允许web服务器放置或覆盖网站中的任何文件。 这意味着,如果有人设法使用web服务器(或某些.php脚本中的安全漏洞)在您的网站中放置一些文件,则有可能接管您的网站

    要保护您的站点免受此类攻击,您应遵守以下规定:

    所有文件都应由您的用户帐户拥有,并且应该是可写的 谢谢你。任何需要从WordPress进行写访问的文件都应该 可由web服务器写入,如果您的主机设置需要,则 可能意味着这些文件需要由所使用的用户帐户拥有 通过web服务器进程

    /
    根WordPress目录:所有文件都应该只能由您的用户帐户写入,但如果希望WordPress写入,则.htaccess除外 自动为您生成重写规则

    /wp admin/
    WordPress管理区:所有文件只能由您的用户帐户写入

    /wp包括/
    WordPress应用程序逻辑的主要部分是:所有文件都只能由您的用户帐户写入

    /wp content/
    用户提供的内容:可由用户帐户和web服务器进程写入

    /wp content/
    中,您将发现:

    /wp content/themes/
    主题文件。如果要使用内置的主题编辑器,所有文件都需要可由web服务器进程写入。如果你不 要使用内置的主题编辑器,所有文件只能写 通过您的用户帐户

    /wp content/plugins/
    插件文件:所有文件只能由您的用户帐户写入

    可能包含
    /wp content/
    的其他目录应为 由插件或主题所需的插件或主题记录。权限可以 变化


    来源和附加信息:

    对于那些在主文件夹下有wordpress根文件夹的用户:

    **Ubuntu/apache

  • 将您的用户添加到www数据组:
  • 功劳

    您想对您的用户调用
    usermod
    。这就是:

    sudo usermod -aG www-data yourUserName
    
    **假设
    www数据
    组存在

  • 检查您的用户是否在
    www-data
    组中:

    将您的用户名分组

  • 你应该得到类似于:

    youUserName : youUserGroupName www-data
    
    WAS:
    -rw-r--r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html
    CHANGED TO:
    -rw-rw-r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html
    
    **youUserGroupName通常与您的用户名相似

  • 递归更改wp内容文件夹的组所有权,保留用户所有权

    chown yourUserName:www-data-R youWebSiteFolder/wp content/*

  • 将目录更改为youWebSiteFolder/wp内容/

    cd youWebSiteFolder/wp内容

  • 递归更改文件夹和子文件夹的组权限以启用写入权限:

    find-类型d-execchmod-r775{}\

  • **“/home/yourUserName/youWebSiteFolder/wp content/”的模式从0755(rwxr-xr-x)更改为0775(rwxr-x)

  • 递归更改文件和子文件的组权限以启用写入权限:

    find-类型f-execchmod-r664{}\

  • 结果应该类似于:

    youUserName : youUserGroupName www-data
    
    WAS:
    -rw-r--r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html
    CHANGED TO:
    -rw-rw-r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html
    
    相当于:

    chmod-R ug+rw foldername

    权限类似于664个文件或775个目录

    注意:如果任何人在更新插件时遇到错误“无法创建目录”
    ,请执行:
    server@user:~/domainame.com$sudo chown用户名:www-data-R wp content

    当您位于域的根目录时。
    假设:
    wp config.php
    具有

    define('FS_方法','direct')

    命令:

    chown www-data:www-data -R *
    find . -type d -exec chmod 755 {} \;
    find . -type f -exec chmod 644 {} \;
    
    其中ftp用户是您用来上载文件的用户

    chown -R ftp-user:www-data wp-content
    chmod -R 775 wp-content
    

    我认为对于默认的wordpress站点,建议使用以下规则:

    • 对于wp内容内的文件夹,请设置0755权限:

      chmod-R 07
      # Set uploads folder user and group to www-data
      chown www-data:www-data -R wp-content/uploads/
      
      # Set uploads folder user and group to www-data
      chown www-data:www-data -R wp-content/
      
      # Set uploads folder user and group to www-data
      chown your-user:root-group -R wp-content/themes
      
      # Set uploads folder user and group to www-data
      chown your-user:root-group -R wp-content/plugins/your-plugin
      
      # Set all directories permissions to 755
      find . -type d -exec chmod 755 {} \;
      
      # Set all files permissions to 644
      find . -type f -exec chmod 644 {} \;
      
      sudo chown -R bitnami:daemon /opt/bitnami/apps/wordpress/htdocs/
      sudo find /opt/bitnami/apps/wordpress/htdocs/ -type f -exec chmod 664 {} \;
      sudo find /opt/bitnami/apps/wordpress/htdocs/ -type d -exec chmod 775 {} \;
      
      find foldername -type d -exec chmod 755 {} \;
      find foldername -type f -exec chmod 644 {} \;
      
      sudo chown -R www:www /www/folder_name
      
      sudo chown -R root:www-data /var/www/html  
      
      chown -R www-data:www-data /var/www/html/wp-content
      
      sudo find /var/www/html -type f -exec chmod 644 {} +
      
      chmod 640 /var/www/html/wp-config.php
      
      chown -R www-data /var/www/html
      
      sudo apt-get install apache2-utils
      sudo htpasswd -c /etc/nginx/.htpasswd userName
      
      /etc/nginx/sites-available/
      
      location ^~ /wp-admin {
          auth_basic "Restricted";
          auth_basic_user_file /etc/nginx/.htpasswd;
          index  index.php index.html index.htm;
      }
      
      sudo /etc/init.d/nginx restart
      
      chown -Rv www-data:www-data
      chmod -Rv 0755 wp-includes
      chmod -Rv 0755 wp-admin/js
      chmod -Rv 0755 wp-content/themes
      chmod -Rv 0755 wp-content/plugins
      chmod -Rv 0755 wp-admin
      chmod -Rv 0755 wp-content
      chmod -v 0644 wp-config.php
      chmod -v 0644 wp-admin/index.php
      chmod -v 0644 .htaccess
      
      cd /var/www/html/example.com
      sudo chown -R www-data:www-data public_html/
      
      sudo chown -R wp-user:wp-user public_html/
      
      cd public_html/wp-content
      sudo chown -R www-data:wp-user wflogs
      sudo chown -R www-data:wp-user uploads
      
      cd plugins
      sudo chown -R www-data:wp-user wordfence/
      
      # Set all directories permissions to 755
      find . -type d -exec chmod 755 {} \;
      
      # Set all files permissions to 644
      find . -type f -exec chmod 644 {} \;
      
      sudo chmod 640 wp-config.php
      
      define( 'FS_METHOD', 'direct' );
      
      sudo chown -R www-data:www-data /var/www