如果我chmod一个目录到777.大家是什么意思? 任何人使用FTP连接而不使用密码或其他东西?
我有一个WordPress的CMS,我试图安装一个插件,但它已经决定不能下载插件到临时目录,所以我猜我需要chmod的东西,不说什么。 但我不想chmod到777,并给任何人访问服务器?
正如克里斯托弗·埃文斯所说,将插件和临时目录分配给用户(或组),Web服务器正在运行,并设置适当的权限。 如果你没有访问目录,你几乎坚持设置模式为777(世界可写)。
其他的东西是缩写的Unix权限讲座 – 你可以从man chmod获得同样的东西,更多的细节。
所有权限的三个字段是所有者 , 组和其他 。
每个字段是一个位掩码,值为1 (执行(&目录的内容)), 2 (写)和4 (读)
文件的权限是由这些值决定的 –
user group other(anybody) chmod 777 directory - gives rwx - rwx - rwx r - read w - write x - execute
基本上你可以完全访问。
把它看作三个单独的数字,从左到右,它规定了用户,组和其他人的访问权限。 每个人都意味着任何人login到你的服务器(通过FTP,SSH或其他)。
如果你给每个人7个权限(意思是读,写和执行),他们可以做任何这些事情。 在目录方面,他们需要执行打开目录,所以唯一真正的问题是w,这意味着他们可以在目录中创build一个新文件或重命名它。 如果你的web服务器可以在DocumentRoot中创build.php文件,那么在你的网站以某种方式允许的情况下(这并不像你想象的那么不寻常),这是非常糟糕的。
WordPress正在试图写入一个目录,所以它只需要以用户的身份访问。 令人讨厌的是我认为Wordpress会检查目录的用户,而不是写入它的能力,所以这可能是你的问题。 或者,用<?php phpinfo(); ?>在网站内部创build一个php文件<?php phpinfo(); ?> <?php phpinfo(); ?>里面。 浏览到这个页面,仔细检查PHP safemode没有打开(PHP写作的另一个常见问题)。 此外,请检查该网站的错误日志,因为它将包含大量有用的信息。
正如其他答案中所述,这三个数字按此顺序决定访问权限:
所以你可以有一个文件,实际上授予更多的访问权限,而不是文件的组或所有者:
[dave@store01 tmp]$ touch this [dave@store01 tmp]$ sudo chmod 007 this [dave@store01 tmp]$ ls -l this -------rwx 1 dave users 0 Jan 20 22:15 this [dave@store01 tmp]$ cat this cat: this: Permission denied
这个例外是根。 任何root拥有根控制权的文件都不能被拒绝为根(*)。
[root@store01 tmp]# touch that [root@store01 tmp]# chmod 007 that [root@store01 tmp]# ls -l that -------rwx 1 root root 0 Jan 20 22:17 that [root@store01 tmp]# cat that [root@store01 tmp]#
在你的具体情况下,将目录chmod到777将意味着任何可以访问该目录的人都可以完全访问所有内容。 向目标目录授予777访问权限,进行上传可能是最简单的,然后立即locking目录。 你不想这样离开你的系统。
我个人试图了解UID与失败事务有关,看看是否允许不同的所有权或组访问会更好,这取决于我立即想要做什么以及将来可能想做什么。
–
(*)=使用这种机制。 随着ACL和扩展属性,事情变得更加复杂,但这超出了这个问题的范围
我build议将插件或临时目录chowning到Web服务器运行的用户。