魁梧的机器人 · 《SeleniumBasic ...· 3 月前 · |
叛逆的猴子 · vue解决报错Unable to ...· 7 月前 · |
坚强的铁板烧 · 如何分組 BY 或摘要數據列 - ...· 11 月前 · |
虚心的长颈鹿 · 使用RICHEDIT - 一个人的天空@ ...· 1 年前 · |
豁达的水煮鱼 · C#中Socket类ReceiveFrom函 ...· 1 年前 · |
当您设置WP时,您(WP服务器)可能需要文件的写入权限。因此,访问权限可能需要松散。
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--
setup you 应该 access rights,根据 Hardening WordPress ,除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中的内容。在这种情况下,您可以
使用 ACLs .,
无论您做什么,都要确保这些文件对www-data具有读写权限。
向
www-data
用户(在本例中为web服务器用户)授予对所有wp文件的完全访问权限可能很危险。所以最好不要这样做:
chown www-data:www-data -R *
但是,在安装或升级WordPress及其插件时,它可能会很有用。但是,当您完成后,保留web服务器拥有的wp文件不再是一个好主意。
它基本上允许web服务器放入或覆盖您网站中的任何文件。这意味着,如果有人设法使用web服务器(或某些.php脚本中的安全漏洞)将一些文件放入您的网站中,就有可能接管您的网站。
为了保护您的站点免受此类攻击,您应该采取以下措施:
所有文件应归您的用户帐户所有,并且应可由您写入。任何需要从WordPress写访问的文件都应该是web服务器可写的,如果您的主机设置需要的话,这可能意味着这些文件需要由web服务器进程使用的用户帐户拥有。
/
WordPress根目录:只有您的用户帐户才能写入所有文件,如果您希望WordPress自动为您生成重写规则,则.htaccess除外。
/wp-admin/
WordPress管理区域:所有文件都应该只对您的用户帐户可写。
/wp-includes/
WordPress应用程序逻辑的主要部分:所有文件都应该只对您的用户帐户可写。
/wp-content/
用户提供的内容:可由您的用户帐户和web服务器进程写入。
在
/wp-content/
中,您将发现:
/wp-content/themes/
主题文件。如果你想使用内置的主题编辑器,所有的文件都需要是web服务器进程可写的。如果您不想使用内置的主题编辑器,则所有文件都只能由您的用户帐户写入。
/wp-content/plugins/
插件文件:所有文件都应该只对您的用户帐户可写。
可能存在于
/wp-content/
中的其他目录应该由任何需要它们的插件或主题来记录。权限可能有所不同。
对于那些将wordpress根文件夹放在主文件夹下的用户:
** Ubuntu/apache
瑞士信贷 Granting write permissions to www-data group
你想对你的用户调用
usermod
。所以这将是:
sudo usermod -aG www-data yourUserName
**假设
www-data
组存在
www-data
组中:
groups yourUserName
你应该会得到类似这样的东西:
youUserName : youUserGroupName www-data
** youUserGroupName通常与您的用户名相似
内容目录youWebSiteFolder/wp-
chown yourUserName:www-data -R youWebSiteFolder/wp-content/*
cd youWebSiteFolder/wp-content
find . -type d -exec chmod -R 775 {} \;
** `/home/yourUserName/youWebSiteFolder/wp-content/‘的模式从0755 (rwxr-xr-x)变为0775 (rwxrwxr-x)
find . -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。
附注:如果任何人在更新插件时遇到错误
'could not create directory'
,请执行以下操作:
server@user:~/domainame.com$ sudo chown username:www-data -R wp-content
当您处于域的根目录时。
假设:
wp-config.php
具有
define('FS_METHOD','direct');
我将权限设置为:
# 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用户,并对您的- user : root - group =当前用户和根组进行分组
这些权限将允许您在不询问权限的情况下访问
themes
和
your-plugin
文件夹下的开发。其余内容将归Apache或Nginx用户所有,以允许WP管理文件系统。
在创建git存储库之前,首先运行以下命令:
# Set all directories permissions to 755
find . -type d -exec chmod 755 {} \;
# Set all files permissions to 644
find . -type f -exec chmod 644 {} \;
我不能告诉你这是否正确,但我正在使用Google Compute App Engine上的Bitnami图像。我在插件和迁移方面遇到了问题,在通过修改权限进一步搞乱之后,我找到了这三行代码,它们解决了我所有的问题。不确定这是否是正确的方式,但对我来说是有效的。
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 {} \;
要绝对确保您的网站是安全的,并且您对您的文件夹使用了正确的权限,请使用以下安全插件:
https://en-ca.wordpress.org/plugins/all-in-one-wp-security-and-firewall/
https://en-ca.wordpress.org/plugins/wordfence/
这些插件将扫描你的Wordpress安装,并通知你任何潜在的问题。这些还将警告您任何不安全的文件夹权限。除此之外,这些插件还会向你推荐应该分配给文件夹的权限。
这实际上取决于你计划使用的插件,因为一些插件会改变wordpress的根文档。但通常我建议在wordpress目录中使用类似这样的代码。
这将在每个单独的文件/文件夹中分配"root“(或您使用的任何用户)作为用户,R表示递归,因此它不会停止在"html”文件夹。如果你没有使用R,那么它只适用于"html“目录。
sudo chown -R root:www-data /var/www/html
这会将"wp-content“的所有者/组设置为"www-data”,从而允许web服务器通过管理面板安装插件。
chown -R www-data:www-data /var/www/html/wp-content
这将"html“文件夹中的每个文件(包括子目录中的文件)的权限设置为644,因此外部人员不能执行任何文件,修改任何文件,组不能执行任何文件,修改任何文件,只有用户可以修改/读取文件,但即使用户也不能执行任何文件。这一点很重要,因为它阻止了在" html“文件夹中的任何类型的执行,而且由于html文件夹和除wp-content文件夹之外的所有其他文件夹的所有者都是"root”(或您的用户),所以www-data不能修改wp-content文件夹之外的任何文件,所以即使web服务器中存在任何漏洞,如果有人未经授权访问该站点,他们也不能删除除插件之外的主站点。
sudo find /var/www/html -type f -exec chmod 644 {} +
这将限制具有rw-r-这些权限的用户/组访问"wp-config.php“的权限。
chmod 640 /var/www/html/wp-config.php
如果插件或更新程序抱怨无法更新,则访问SSH并使用此命令,并通过管理面板授予"www-data“(web服务器)更新/安装的临时权限,然后在更新完成后恢复到"root”或您的用户。
chown -R www-data /var/www/html
以及在Nginx (与apache相同的过程)中保护wp-admin文件夹,防止未经授权的访问和探查。apache2-utils是加密密码所必需的,即使您已经安装了nginx,如果您计划将更多用户添加到同一文件中,请省略c。
sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd userName
现在访问此位置
/etc/nginx/sites-available/
使用此代码保护"wp-admin“文件夹的密码,现在它将询问密码/用户名,如果您试图访问"wp-admin”。注意,这里使用的是包含加密密码的".htpasswd“文件。
location ^~ /wp-admin {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
index index.php index.html index.htm;
}
现在重新启动nginx。
sudo /etc/init.d/nginx restart
最好阅读此 https://wordpress.org/support/article/changing-file-permissions/ 上的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
虚心的长颈鹿 · 使用RICHEDIT - 一个人的天空@ - 博客园 1 年前 |