为什么在 C(Linux)中创建文件需要执行权限和写入权限?

为什么在 C(Linux)中创建文件需要执行权限和写入权限?

我正在尝试在 Linux 上从我的 C 源代码创建一个文件。我正在使用命令dd从文件中读取并通过创建文件将其写入文件。如果我对目标目录(将要创建文件的位置)没有执行权限(我有写入权限),则无法创建该文件。如果我同时具有写入和执行权限,则可以创建文件。

这是什么原因呢?

答案1

设置后,r、w 和 x 模式属性对文件和目录具有以下影响:

  • r 属性(读权限):

文件:允许文件已打开

目录:允许列出目录的内容。要检索有关包含文件或目录的任何信息,还必须设置执行属性。

  • w 属性(写权限):

文件:允许写入或截断文件,但是此属性不允许重命名或删除文件. 删除或重命名文件的能力取决于按目录属性

目录:允许创建、删除和重命名目录中的文件如果还设置了执行属性

  • x 属性(执行权限):

文件:允许将文件视为程序并执行。用脚本语言编写的程序文件还必须设置为可读才能执行

目录:允许目录已输入,例如 cd 目录。

参考:Linux® 命令行 William E. Shotts, Jr.

我建议阅读这本书或 pdf 版本,您可以从以下链接下载:http://sourceforge.net/projects/linuxcommand/files/TLCL/13.07/TLCL-13.07.pdf/download

答案2

目录的执行位赋予您进入/遍历目录的可能性。因此,在您的情况下,创建文件也是先决条件(否则您可以进入文件)。

相关内容