我在这里看了一下,但没有找到关于最佳文件权限的任何细节。我也在这里看了一些WordPress表单的问题,但任何建议777的人显然需要上一节安全课。

总之,我的问题是这样的。我应该拥有以下权限:

存储所有WordPress内容的根文件夹 wp-admin wp-content wp-includes

那每个文件夹里的所有文件呢?


当前回答

我设置权限为:

    # 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 {} \;

其他回答

我不能告诉你这是否正确,但我在谷歌计算应用程序引擎上使用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 {} \;

对于OS X使用以下命令:

sudo chown -R www:www /www/folder_name

当你设置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权限。

为了确保您的网站是安全的,并且您为文件夹使用了正确的权限,请使用如下安全插件:

https://en-ca.wordpress.org/plugins/all-in-one-wp-security-and-firewall/

https://en-ca.wordpress.org/plugins/wordfence/

这些插件会扫描你的Wordpress安装,并通知你任何潜在的问题。这些还将警告您任何不安全的文件夹权限。除此之外,这些插件会建议你应该给文件夹分配什么权限。

命令:

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