是否可以删除目录权限“d”

是否可以删除目录权限“d”

我知道关于一切皆文件(维基百科)。当我在研究文件权限时,我想知道是否可以将目录文件类型更改为普通的常规文件类型。

例如:

mkdir directorytouch file会显示如下内容:

drwxr-xr-x 2 user group 4096 Aug 18 22:26 directory
-rw-r--r-- 1 user group    0 Aug 18 22:26 file

在linux(或unix)世界中是否可以转换directoryfile.换句话说,删除?d中的前缀。drwxr-xr-x

答案1

d不是权限,而是文件类型。在历史上的 Unix 文件系统实现中,类型和权限被捆绑在 16 位中modei 节点结构域1,这可能就是stat(2)API(st_mode字段)和ls长输出也将它们捆绑在一起的原因。

但无法更改类型。虽然最初,目录数据的存储方式与常规文件相同,并且对用户空间不是不透明的,但现在它是不透明的(并且您使用特定的系统调用来读取内容或添加/删除/重命名条目,而不是读取和写入目录直接内容),并且在某些文件系统上,目录数据的存储方式甚至与文件不同,因此更改类型就更没有意义了。


¹ 最低 12 位的权限、较高位的编码类型和更多内部 FS 内容以及其他内容移入i_flagV7 中新的单独字段70年代末。

相关内容