2014-09-25 58 views
1

如果我要追加到一个日志文件,如下所示:为了写入文件,FILE和FOLDER需要权限吗?

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

什么必须将文件的权限是(UNIX)?目录权限是否也必须更改,或者是否对文件的权限进行了调整?

+0

这是什么意思?八进制值需要? – Ghost 2014-09-25 02:08:28

+0

我会开始说'file_put_contents'不要'追加';如果ip.txt已存在,它将被替换 – 2014-09-25 02:09:35

+0

对文件使用644或777。 644更好,应该就够了。对于文件夹755通常是最好的。你很少会想要使用其他的东西。 – 2014-09-25 02:17:20

回答

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.) 

集团和其他应在该文件所在的位置,在Unix组系统的背景下进行解释。其他人是系统中那些没有参与群体并且不是所有者的用户。

但是,所有这些在Web应用程序的上下文中几乎没有任何作用,因为它总是Web服务器(即Apache)运行处理文件的脚本的人。所以在这一点上唯一真正相关的许可是三个中的第一个。

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

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

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

+0

为什么不设置组和世界字段,如果这将从网站执行?为什么不是666而不是644? (我可能会误解集团和世界的含义。) – Doug 2014-09-25 05:10:35