Man*_*d3r 478
设置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--
Run Code Online (Sandbox Code Playgroud)
设置完成后,你应该收紧的访问权限,根据硬化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
Run Code Online (Sandbox Code Playgroud)
也许你想稍后更改wp-content中的内容.在这种情况下你可以
su,无论您做什么,请确保文件具有www-data的 rw权限.
Kor*_*nel 56
向www-data用户提供对所有wp文件的完全访问权限(在本例中为Web服务器用户)可能很危险.所以不要这样做:
chown www-data:www-data -R *
Run Code Online (Sandbox Code Playgroud)
但是,当您安装或升级WordPress及其插件时,它会很有用.但是当你完成它时,保持Web服务器拥有的wp文件不再是一个好主意.
它基本上允许Web服务器放置或覆盖您网站中的任何文件.这意味着如果有人设法使用Web服务器(或某些.php脚本中的安全漏洞)将某些文件放入您的网站,则有可能接管您的站点.
为了保护您的网站免受此类攻击,您应该执行以下操作:
所有文件都应归您的用户帐户所有,并且您应该可以写入.任何需要来自WordPress写入权限的文件都应该由Web服务器写入,如果您的主机设置需要它,这可能意味着这些文件需要由Web服务器进程使用的用户帐户进行组拥有.
/根WordPress目录:所有文件只能由您的用户帐户写入,但.htaccess除外,如果您希望WordPress自动为您生成重写规则.
/wp-admin/WordPress管理区域:所有文件只能由您的用户帐户写入.
/wp-includes/大量的WordPress应用程序逻辑:所有文件只能由您的用户帐户写入.
/wp-content/用户提供的内容:旨在由您的用户帐户和Web服务器进程写入.
内
/wp-content/,你会发现:
/wp-content/themes/主题文件.如果要使用内置主题编辑器,则所有文件都需要由Web服务器进程写入.如果您不想使用内置主题编辑器,则所有文件只能由您的用户帐户写入.
/wp-content/plugins/插件文件:所有文件只能由您的用户帐户写入.
可能存在的其他目录
/wp-content/应该由任何插件或主题需要它们来记录.权限可能会有所不同.
来源和其他信息:http://codex.wordpress.org/Hardening_WordPress
Jad*_*eye 25
对于那些在其主文件夹下有wordpress根文件夹的人:
**Ubuntu/apache
CREDIT 向www-data组授予写入权限
您想要呼叫usermod您的用户.那就是:
sudo usermod -aG www-data yourUserName
Run Code Online (Sandbox Code Playgroud)
**假设www-data组存在
检查您的用户是否在www-data群组中:
groups yourUserName
你应该得到类似的东西:
youUserName : youUserGroupName www-data
Run Code Online (Sandbox Code Playgroud)
**youUserGroupName通常类似于您的用户名
递归更改wp-content文件夹的组所有权,保持用户所有权
chown yourUserName:www-data -R youWebSiteFolder/wp-content/*
将目录更改为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
Run Code Online (Sandbox Code Playgroud)
相当于:
chmod -R ug + rw foldername
权限将为664个文件或775个目录.
如果有人'could not create directory'在更新插件时遇到错误,请执行以下操作:
server@user:~/domainame.com$ sudo chown username:www-data -R wp-content
当您位于域的根目录时.
假设:在LocalHost上wp-config.php有
FTP凭据
define('FS_METHOD','direct');
Pod*_*.io 19
最好阅读https://codex.wordpress.org/Changing_File_Permissions上的wordpress文档
- 所有文件应归实际用户的帐户所有,而不是用于httpd进程的用户帐户
- 除非对Web服务器进程权限检查有特定的组要求,否则组所有权无关紧要.通常情况并非如此.
- 所有目录应为755或750.
- 所有文件应为644或640.例外:wp-config.php应为440或400,以防止服务器上的其他用户读取它.
- 不应该给777目录,甚至上传目录.由于php进程作为文件的所有者运行,因此它获得了所有者权限,甚至可以写入755目录.
Pab*_*one 14
我将权限设置为:
# 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 {} \;
Run Code Online (Sandbox Code Playgroud)
在我的例子中,我为WordPress创建了一个特定用户,该用户与防止从Web访问该用户拥有的文件的apache默认用户不同.
然后它授予apache用户处理上传文件夹的权限,最后设置足够安全的文件和文件夹权限.
EDITED
如果您正在使用W3C Total Cache,您还应该执行下一步:
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
Run Code Online (Sandbox Code Playgroud)
然后它会工作!
EDITED
经过一段时间开发WordPress网站后,我建议每个环境使用不同的文件权限:
在生产中,我不会授予用户访问权限来修改文件系统,我只允许他们上传资源并访问一些插件特定文件夹来进行备份等.但是在Git下管理项目并使用部署密钥服务器,它不是很好的升级插件,也不是生产.我离开这里生产文件设置:
# Set uploads folder user and group to www-data
chown www-data:www-data -R wp-content/uploads/
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
www-data:www-data = apache或nginx用户和组 your-user:root-group =您当前的用户和root组
这些权限将允许您在没有请求权限的情况下访问under themes和your-pluginfolder.其余内容将由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 {} \;
Run Code Online (Sandbox Code Playgroud)
Kap*_*ppa 10
该文件的正确权限是644文件夹的正确权限是755
要更改权限,请使用terminal和following命令.
find foldername -type d -exec chmod 755 {} \;
find foldername -type f -exec chmod 644 {} \;
Run Code Online (Sandbox Code Playgroud)
文件夹为755,文件为644.
它实际上取决于您计划使用的插件,因为一些插件会更改wordpress的根文档.但通常我会为wordpress目录推荐这样的东西.
这将在每个文件/文件夹中将"root"(或者您正在使用的任何用户)分配为用户,R表示递归,因此它不会停留在"html"文件夹中.如果你没有使用R,那么它只适用于"html"目录.
sudo chown -R root:www-data /var/www/html
Run Code Online (Sandbox Code Playgroud)
这会将"wp-content"的所有者/组设置为"www-data",从而允许Web服务器通过管理面板安装插件.
chown -R www-data:www-data /var/www/html/wp-content
Run Code Online (Sandbox Code Playgroud)
这会将"html"文件夹(包括子目录中的文件)中的每个文件的权限设置为644,因此外部人员无法执行任何文件,修改任何文件,组无法执行任何文件,只修改任何文件允许用户修改/读取文件,但即使用户也无法执行任何文件.这很重要,因为它可以防止在"html"文件夹中执行任何类型,因为html文件夹的所有者和除wp-content文件夹之外的所有其他文件夹都是"root"(或你的用户),www-data can'修改wp-content文件夹之外的任何文件,因此即使Web服务器中存在任何漏洞,并且有人未经授权访问该站点,他们也无法删除除插件之外的主站点.
sudo find /var/www/html -type f -exec chmod 644 {} +
Run Code Online (Sandbox Code Playgroud)
这将限制使用rw-r -----这些权限访问"wp-config.php"到用户/组的权限.
chmod 640 /var/www/html/wp-config.php
Run Code Online (Sandbox Code Playgroud)
如果插件或更新抱怨它无法更新,则访问SSH并使用此命令,并授予"www-data"(Web服务器)临时权限以通过管理面板更新/安装,然后还原完成后返回"root"或您的用户.
chown -R www-data /var/www/html
Run Code Online (Sandbox Code Playgroud)
并在Nginx(与apache相同的过程)中保护wp-admin文件夹免受未经授权的访问和探测.即使您安装了nginx,也需要apache2-utils来加密密码,如果您计划将更多用户添加到同一文件,则省略c.
sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd userName
Run Code Online (Sandbox Code Playgroud)
现在访问这个位置
/etc/nginx/sites-available/
Run Code Online (Sandbox Code Playgroud)
使用此代码用密码保护"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;
}
Run Code Online (Sandbox Code Playgroud)
现在重启nginx.
sudo /etc/init.d/nginx restart
Run Code Online (Sandbox Code Playgroud)
我认为以下规则建议用于默认的wordpress网站:
对于wp-content内的文件夹,设置0755权限:
chmod -R 0755插件
chmod -R 0755上传
chmod -R 0755升级
让apache用户成为上述wp-content目录的所有者:
chown apache上传
chown apache升级
chown apache插件
| 归档时间: |
|
| 查看次数: |
549273 次 |
| 最近记录: |