如果我想按如下方式附加到日志文件:
file_put_contents("ip.txt", $ip, FILE_APPEND);
文件的权限必须是什么(UNIX)?是否还必须更改目录权限,或者对文件权限的调整是否足够?
答案 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应用程序的上下文中,您真正关心的唯一权限是第一个。