在计算机文件系统中,不同的文件和目录具有的权限会指定哪些人及哪些内容可读,写,修改及访问。这是很重要的,因为WordPress可能需要访问并写入wp-content目录下的文件以启用特定的功能。
权限模式
6 4 0 user group world r+w w 4+2+0 4+0+0 0+0+0 = 640
权限模式是由用户,文件组及其他所有人各组数值分别相加得出的。从上面的图表中应该能看出个大概。
- Read 4 – 允许读文件
- Write 2 – 允许写/修改文件
-
eXecute1 – 读/写/删除/修改/目录
4 0 0 user group world r+w 4+0+0 0+0+0 0+0+0 = 400
权限模式实例
模式 | Str权限 | 解释 |
---|---|---|
0477 | -r–rwxrwx | 所有者仅可读(4),其他及组可读写执行(7) |
0677 | -rw-rwxrwx | 所有者仅可读写(6),其他及组可读写执行(7) |
0444 | -r–r–r– | 所有均仅可读(4) |
0666 | -rw-rw-rw- | 所有均仅可读写(6) |
0400 | -r——– | 所有者仅可读(4),组及其他无任何权限(0) |
0600 | -rw——- | 所有者仅可读写(6),组及其他无任何权限(0) |
0470 | -r–rwx— | 所有者仅可读,组可读写执行,其他则无任何权限 |
0407 | -r—–rwx | 所有者仅可读,其他可读写执行,组则无任何权限 |
0670 | -rw-rwx— | 所有者仅可读写,组可读写执行,其他则无任何权限 |
0607 | -rw—-rwx | 所有者仅可读写,其他可读写执行,组则无任何权限 |
WordPress权限策略
所有文件应由你web服务器上的用户帐户所有,并可由你进行写入。所有需从WordPress进行写入访问的文件,必须由web服务器用户帐户所有。举个例子,你所拥有的用户帐户使得你可以通过FTP程序将文件上传到服务器上,但你的服务器自身所有的其他某个独立用户可能位于某个独立的用户组中。如dhapache或nobody这样的用户。
wordpress文件及文件夹权限针对大部分用户来说应当是相同的,这是由你所使用的wordpress类型及安装时系统环境的umask设定所决定的。
注:如果你是自己安装的WordPress,那就不大可能需要修改文件权限。除非你遇到了权限相关的错误,或者是你自己想要修改文件权限,一般说来你无需为文件权限操心。
对于WordPress核心文件来说,所有这些文件都仅可由你的用户帐户进行写入操作。但如果你使用了mod_rewrite永久链接或其他.htaccess相关的功能的话,那你就得确认WordPress也可以写入你的/.htaccess
文件。
如果你想使用内置的外观主题编辑器,那么所有的文件都应是组可写的。在修改文件权限之前,请尝试进行使用,应无大碍。
某些插件要求/wp-content/文件夹可写,但在这种情况下,在安装过程中这些插件应会进行提示。而在某些情况下可能需要指派755或更高的权限(某些host可能要求777)。对于/wp-content/cache/
及/wp-content/uploads/也是如此。
/wp-content/下的额外目录应针对需要它们的插件或外观主题进行记录,对应的权限可能会有所不同。
/ |- index.php |- wp-admin | `- wp-admin.css |- wp-blog-header.php |- wp-comments-post.php |- wp-commentsrss2.php |- wp-config.php |- wp-content | |- cache | |- plugins | |- themes | `- uploads |- wp-cron.php |- wp-includes `- xmlrpc.php
使用FTP客户端
FTP程序(客户端)允许你在远程主机上为文件及目录设定权限。此功能在程序菜单中一般显示为chmod
或设定权限。
在WordPress中,你可能想要修改的两个文件应该是索引页,以及控制布局的CSS。这里给出修改index.php的方法 – 其他文件的修改步骤也是如此。
看以下截图中的最后一栏 – 即显示权限的地方。看起来是不是有点让人迷惑,先不管它,注意字母的次序即可。
右击'index.php'并选择'文件权限'
然后就会弹出一个窗口。
别管这些复选框。只要删除'Numeric value:'的内容并输入所需的数值即可 – 此例中为666,点击确定(OK)即可。
现在你应该能看到权限已经被修改了。
显示隐藏文件
默认情况下,大部分FTP客户端,也包括FileZilla,都保留有隐藏文件,这些文件开头都带有一个句点(.),这样一来就不会显示出来了。不过在某些情况下,你可能需要查看这些隐藏文件,因此你就需要对这些文件的权限进行修改。比如,你可能需要使控制固定链接的.htaccess文件可写。
要在FileZilla中显示隐藏文件的话,就要选择顶部菜单中的'查看(View)',然后选择'显示隐藏文件'。然后屏幕中显示的文件就会刷新,之前被隐藏的文件此时就会显示出来。
让FileZilla总是显示隐藏文件 – 编辑(Edit)下,设定(Settings),远程文件列表(Remote File List),选择总是显示隐藏文件(Always show hidden files)即可。
使用命令行
如果你可以通过shell/SSH访问主机帐户的话,就可以使用chmod
来修改文件权限,此方法推荐高级用户使用。在你开始使用chmod之前最好阅读一下相关教程,以确认你自己完全了解该方法
。如果权限设定不正确的话,你的网站就有可能会离线。
完成2个步骤你就可以让wp-content目录下的所有文件可写,但在让每个文件及文件夹可写之前,你应当采取较安全的手段来修改目录。请尝试各命令,如果没用的话,请依次进行尝试,有的甚至可以让外观主题图片文件变成可写。将DIR替换为你希望进行写入操作的文件夹
chmod 746 -v DIR chmod 747 -v DIR chmod 756 -v DIR chmod 757 -v DIR chmod 764 -v DIR chmod 765 -v DIR chmod 766 -v DIR chmod 767 -v DIR
如果以上这些均不允许你进行写操作,请按次序重试一次,不过这次请将 -v替换为 -R,这将递归式地修改位于文件夹中的各文件。如果完成此操作后仍无法写入的话,就可以尝试777了。
关于Chmod
chmod
是一个unix命令,表示修改文件的模式(即"change mode") -R
标记的意思是将修改应用于wp-content中的所有文件及目录。766是我们所要修改的目录具有的权限,它表示目录可被WordPress及系统中其他所有的用户读和写。最后我们有了需要修改的目录名称,wp-content
。如果766无效的话,你可以尝试使用777,这将使得所有的文件及文件夹对于所有用户,组合进程可读,可写及可执行。
如果你使用了固定链接,就应当修改.htaccess 文件的权限以保证WordPress能够在你修改设定时进行更新,如新添页面,重新导向和分类时,就需要更新.htaccess文件。
- 打开WordPress主目录
-
输入
chmod -v 666 .htaccess
注:就安全性方面来看,对全局可写目录进行最低限度的保护也是很好的。使用744这一具有较低许可范围的设定做为开始,直到符合要求即止。如有必要的话才使用777,且时间不宜过久。
使用777的弊端
有关此权限的关键问题是,你的服务器是如何设置的。你用FTP或SSH登入服务器的用户名很可能不是服务器程序所使用的用于页面托管的用户名。
7 7 7 user group world r+w+x r+w+x r+w+x 4+2+1 4+2+1 4+2+1 = 777
Apache服务器通常为dhapache 或 nobody 用户帐户拥有。这些帐户对服务器文件的访问时受限的。通过将你的用户帐户拥有的个人文档及文件夹设定为全局可写,那么这些文件及文件夹就确实为全局可写了。现在dhapache及nobody用户对你的用户帐户文件就具有完全的访问权了。
但同时这就使得某些人可以通过劫持你服务器上的任何进程来访问你的文件了,这还包括了在你机器上的其他用户。因此修改权限时应当慎重。至少我从来没有遇到过需要制定超过767权限的情况,因此在看到777时,自然就应当问问为何需要使用它。
分类:中文手册