要写入文件,FILE和FOLDER需要权限吗?

时间:2014-09-25 02:06:13

标签: php file unix permissions file-permissions

如果我想按如下方式附加到日志文件:

file_put_contents("ip.txt", $ip, FILE_APPEND);

文件的权限必须是什么(UNIX)?是否还必须更改目录权限,或者对文件权限的调整是否足够?

1 个答案:

答案 0 :(得分:1)

文件的最常见权限是644,它允许所有者读取和写入权限,并向组和其他人读取。

为了在目录中编写文件,您需要为其提供执行访问权限,因此7xx将是您需要的文件。至于群组和其他人的权限,取决于具体情况。

目录最常见的权限是755;这意味着(除了上面提到的内容)该组和其他人具有读取和执行权限。 目录的执行权限意味着您可以输入,您需要在其中写入文件。

编辑:

Why would the Group and World fields not be set, if this will be executed from a
website? Why not 666 instead of 644? (I might be misunderstanding what Group and 
World mean.) 

Group和Others应该在文件所在系统的上下文中解释,就像在Unix组中一样。其他人是系统中没有使用该组并且不是所有者的那些用户。

然而,所有这些在Web应用程序的上下文中几乎不起作用,因为它始终是运行操作文件的脚本的Web服务器(即Apache)。因此,此时唯一真正相关的许可是三者中的第一个。

如果您可以通过控制台访问服务器,并且尝试访问该ip.txt文件;那么您必须以具有足够权限访问该文件的用户身份登录。这是第二和第三位数发挥作用的地方。

因此,假设您的文件权限设置为666:那么登录的任何用户都可以读取和写入该文件(前提是他们对包含该文件的目录也具有执行权限)。如果文件具有权限644,那么只有所有者才有权写入,而组用户和其他人只有读取权限。

但同样,在Web应用程序的上下文中,您真正关心的唯一权限是第一个。