我在这里看了一下,但没有找到关于最佳文件权限的任何细节。我也在这里看了一些WordPress表单的问题,但任何建议777的人显然需要上一节安全课。
总之,我的问题是这样的。我应该拥有以下权限:
存储所有WordPress内容的根文件夹 wp-admin wp-content wp-includes
那每个文件夹里的所有文件呢?
我在这里看了一下,但没有找到关于最佳文件权限的任何细节。我也在这里看了一些WordPress表单的问题,但任何建议777的人显然需要上一节安全课。
总之,我的问题是这样的。我应该拥有以下权限:
存储所有WordPress内容的根文件夹 wp-admin wp-content wp-includes
那每个文件夹里的所有文件呢?
当前回答
当你设置WP时,你(web服务器)可能需要对文件进行写访问。因此,访问权限可能需要放宽。
chown www-data:www-data -R * # Let Apache be owner
find . -type d -exec chmod 755 {} \; # Change directory permissions rwxr-xr-x
find . -type f -exec chmod 644 {} \; # Change file permissions rw-r--r--
安装完成后,您应该加强访问权限,根据加固WordPress,除了wp-content之外的所有文件都应该只能由您的用户帐户写入。Wp-content也必须可以被www-data写入。
chown <username>:<username> -R * # Let your useraccount be owner
chown www-data:www-data wp-content # Let apache be owner of wp-content
也许稍后您想更改wp-content中的内容。在这种情况下你可以
使用su临时更改用户为www-data, 给予wp-content组写权限775,并加入www-data组或 给您的用户使用acl访问文件夹的权限。
无论你做什么,确保文件对www-data有rw权限。
其他回答
对于OS X使用以下命令:
sudo chown -R www:www /www/folder_name
文件的正确权限是644 文件夹的正确权限为755
要更改权限,请使用terminal和以下命令。
find foldername -type d -exec chmod 755 {} \;
find foldername -type f -exec chmod 644 {} \;
文件夹是755,文件是644。
对于那些在主文件夹下有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”、“直接”);
我不能告诉你这是否正确,但我在谷歌计算应用程序引擎上使用Bitnami图像。我有插件和迁移的问题,并进一步搞砸了chmod'ing权限后,我发现这三行解决了我所有的问题。不确定这是否是正确的方法,但对我来说很有效。
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 {} \;
我设置权限为:
# Set all files and directories user and group to wp-user
chown wp-user:wp-user -R *
# Set uploads folder user and group to www-data
chown www-data:www-data -R wp-content/uploads/
# Set all directories permissions to 755
find . -type d -exec chmod 755 {} \;
# Set all files permissions to 644
find . -type f -exec chmod 644 {} \;
在我的例子中,我为WordPress创建了一个特定的用户,这与apache的默认用户不同,后者阻止从web访问该用户拥有的那些文件。
然后授予apache用户处理上传文件夹的权限,最后设置足够安全的文件和文件夹权限。
编辑
如果你正在使用W3C的全缓存,你应该做下面的事情:
rm -rf wp-content/cache/config
rm -rf wp-content/cache/object
rm -rf wp-content/cache/db
rm -rf wp-content/cache/minify
rm -rf wp-content/cache/page_enhanced
那么它就会起作用!
编辑
在开发WordPress网站一段时间后,我建议不同的环境文件权限:
在生产中,我不会允许用户修改文件系统,我只允许他们上传资源,并允许他们访问一些插件特定的文件夹来进行备份等。但是在Git下管理项目和在服务器上使用部署键,在登台和生产中都不能很好地更新插件。我把生产文件设置留在这里:
# Set uploads folder user and group to www-data
chown www-data:www-data -R wp-content/uploads/
Www-data: Www-data = apache或nginx用户和组
登台应该是它的克隆,因此它将共享相同的生产权限。
最后,开发环境将有权更新插件,翻译,一切…
# 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
Www-data: Www-data = apache或nginx用户和组 你的用户:root-group =当前用户和根组
这些权限将允许您在主题和您的插件文件夹下进行开发,而无需询问许可。其余的内容将由Apache或Nginx用户拥有,以允许WP管理文件系统。
在创建git repo之前,首先运行以下命令:
# Set all directories permissions to 755
find . -type d -exec chmod 755 {} \;
# Set all files permissions to 644
find . -type f -exec chmod 644 {} \;