【问题标题】:Permissions required on FILE and FOLDER in order to write to file? [closed]文件和文件夹需要权限才能写入文件? [关闭]
【发布时间】:2014-11-19 16:21:02
【问题描述】:

如果我想追加到日志文件如下:

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

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

【问题讨论】:

  • 这是什么意思?需要八进制值?
  • 我会先说file_put_contents不要“追加”;如果 ip.txt 已经存在,它将替换
  • 对文件使用 644 或 777。 644更好,应该足够了。文件夹的 755 通常是最好的。您很少会想使用其他任何东西。

标签: php file unix permissions file-permissions


【解决方案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 应用程序的上下文中,您真正关心的唯一权限是第一个权限。

【讨论】:

  • 如果从网站执行,为什么不设置 Group 和 World 字段?为什么不是 666 而不是 644? (我可能误解了 Group 和 World 的含义。)
猜你喜欢
  • 2021-03-25
  • 2011-08-21
  • 2012-07-01
  • 2020-03-14
  • 2013-07-07
  • 1970-01-01
  • 2016-02-16
  • 2014-06-06
  • 2019-10-31
相关资源
最近更新 更多