我在这里看了一下,但没有找到关于最佳文件权限的任何细节。我也在这里看了一些WordPress表单的问题,但任何建议777的人显然需要上一节安全课。
总之,我的问题是这样的。我应该拥有以下权限:
存储所有WordPress内容的根文件夹 wp-admin wp-content wp-includes
那每个文件夹里的所有文件呢?
我在这里看了一下,但没有找到关于最佳文件权限的任何细节。我也在这里看了一些WordPress表单的问题,但任何建议777的人显然需要上一节安全课。
总之,我的问题是这样的。我应该拥有以下权限:
存储所有WordPress内容的根文件夹 wp-admin wp-content wp-includes
那每个文件夹里的所有文件呢?
当前回答
将所有wp文件的完全访问权限授予www-data用户(在这种情况下是web服务器用户)可能是危险的。 所以最好不要这样做:
chown www-data:www-data -R *
然而,当你安装或升级WordPress及其插件时,它会很有用。但是当你完成后,让web服务器拥有wp文件就不再是一个好主意了。
它基本上允许网络服务器在你的网站上放置或覆盖任何文件。 这意味着如果有人设法使用web服务器(或一些.php脚本中的安全漏洞)在您的网站中放置一些文件,就有可能接管您的网站。
为了保护您的网站免受此类攻击,您应该采取以下措施:
All files should be owned by your user account, and should be writable by you. Any file that needs write access from WordPress should be writable by the web server, if your hosting set up requires it, that may mean those files need to be group-owned by the user account used by the web server process. / The root WordPress directory: all files should be writable only by your user account, except .htaccess if you want WordPress to automatically generate rewrite rules for you. /wp-admin/ The WordPress administration area: all files should be writable only by your user account. /wp-includes/ The bulk of WordPress application logic: all files should be writable only by your user account. /wp-content/ User-supplied content: intended to be writable by your user account and the web server process. Within /wp-content/ you will find: /wp-content/themes/ Theme files. If you want to use the built-in theme editor, all files need to be writable by the web server process. If you do not want to use the built-in theme editor, all files can be writable only by your user account. /wp-content/plugins/ Plugin files: all files should be writable only by your user account. Other directories that may be present with /wp-content/ should be documented by whichever plugin or theme requires them. Permissions may vary.
来源及其他信息:http://codex.wordpress.org/Hardening_WordPress
其他回答
根据我在自己网站上的阅读和痛苦,在被黑客入侵后,我想出了上面的列表,其中包括一个名为Wordfence的Wordpress安全插件的权限。(非附属机构)
在我们的例子中,wordpress文档根是 /var/www/html/example.com/public_html
打开权限,以便www-data可以像下面这样写入文档根目录:
cd /var/www/html/example.com
sudo chown -R www-data:www-data public_html/
现在,作为管理员,您可以在站点的仪表板上执行更新。
按照以下步骤完成更新后的安全站点:
sudo chown -R wp-user:wp-user public_html/
上面的命令将wordpress安装中的所有内容的权限更改为wordpress FTP用户。
cd public_html/wp-content
sudo chown -R www-data:wp-user wflogs
sudo chown -R www-data:wp-user uploads
上面的命令确保安全插件Wordfence可以访问它的日志。上传目录也可以通过www-data写入。
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 {} \;
将wp-config.php的权限设置为640,这样只有wp-user可以读取该文件,其他用户不能读取。440的权限不适合我以上的文件所有权。
sudo chmod 640 wp-config.php
使用SSH的Wordpress自动更新在PHP5上运行正常,但在PHP7.0上就不行了,因为PHP7.0 -ssh2与Ubuntu 16.04绑定的问题,我不知道如何安装正确的版本并使其工作。幸运的是,一个非常可靠的插件ssh- SFTP -update -support(免费)使使用SFTP的自动更新成为可能,而不需要libssh2。因此,除非在极少数需要的情况下,上述权限永远不必放松。
命令:
chown www-data:www-data -R *
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
ftp-user是用来上传文件的用户
chown -R ftp-user:www-data wp-content
chmod -R 775 wp-content
我认为下面的规则是推荐的默认wordpress网站:
对于wp-content中的文件夹,设置0755权限: chmod -R 0755插件 chmod -R 0755上传 chmod -R 0755 upgrade 让apache用户成为wp-content目录的所有者: Chown apache上传 Chown apache升级 Chown apache插件
对于OS X使用以下命令:
sudo chown -R www:www /www/folder_name
对于那些在主文件夹下有wordpress根文件夹的用户:
apache Ubuntu * * /
将您的用户添加到www-data组:
CREDIT赋予www-data组写权限
你想在你的用户上调用usermod。那就是:
sudo usermod -aG www-data yourUserName
**假设www-data组存在
检查用户是否在www-data组: 组yourUserName
你应该得到这样的东西:
youUserName : youUserGroupName www-data
** youUserGroupName通常与您的用户名类似
递归地更改wp-content文件夹的组所有权,保持用户所有权 chown username:www-data -R youWebSiteFolder/wp-content/* 修改目录为“youWebSiteFolder/wp-content/” cd youWebSiteFolder / wp-content 递归更改文件夹和子文件夹的组权限以启用写权限: 找到。-type d -exec chmod -R 775 {} \;
/home/yourUserName/youWebSiteFolder/wp-content/的模式从0755 (rwxr-xr-x)更改为0775 (rwxrwxr-x)
递归地更改文件和子文件的组权限以启用写权限: 找到。-type f -exec chmod -R 664 {} \;
结果应该如下所示:
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文件夹
文件的权限是664,目录的权限是775。
附注:如果有人在更新插件时遇到“无法创建目录”错误,请: server@user:~/domainame.com$ sudo chown用户名:www-data -R wp-content 当你在你的域的根。 假设:wp-config.php有 LocalHost上的FTP凭据 定义(“FS_METHOD”、“直接”);