为什么八进制权限以40开头?

为什么八进制权限以40开头?

我刚刚安装了 nemo,并且正在显示八进制权限字段。权限是 40755 和 100755 之类的。我熟悉最后三位数字 (755),我假设这些是所有者、组和其他所有人的 rwx 权限。前缀权限是什么 - 在我的示例中是 40 和 100?

答案1

它们是文件类型。10 是 fifo,40 是目录。来自man 2 stat

   The following flags are defined for the st_mode field:

       S_IFMT     0170000   bit mask for the file type bit fields
       S_IFSOCK   0140000   socket
       S_IFLNK    0120000   symbolic link
       S_IFREG    0100000   regular file
       S_IFBLK    0060000   block device
       S_IFDIR    0040000   directory
       S_IFCHR    0020000   character device
       S_IFIFO    0010000   FIFO
       S_ISUID    0004000   set-user-ID bit
       S_ISGID    0002000   set-group-ID bit (see below)
       S_ISVTX    0001000   sticky bit (see below)
       S_IRWXU    00700     mask for file owner permissions
       S_IRUSR    00400     owner has read permission
       S_IWUSR    00200     owner has write permission
       S_IXUSR    00100     owner has execute permission
       S_IRWXG    00070     mask for group permissions
       S_IRGRP    00040     group has read permission
       S_IWGRP    00020     group has write permission
       S_IXGRP    00010     group has execute permission
       S_IRWXO    00007     mask for permissions for others (not in group)
       S_IROTH    00004     others have read permission
       S_IWOTH    00002     others have write permission
       S_IXOTH    00001     others have execute permission

答案2

备注/更正:7 个位置给出了八进制权限:0000000 我们称之为 gfedcba。

位置“a”代表“其他”,是权限的总和:1(执行或进入目录)、2(写入)和 4(读取)。例如:7 是 4+2+1;6 是 4+2 ...

位置“b”相同,但针对的是“组”

位置“c”代表“所有者”

位置“d”表示特殊字符的总和:1 表示粘性(如果设置了此选项,则只有所有者可以重命名或删除文件,而不管其他权限如何)2 表示强制组(如果文件的所有者被允许在该目录中“写入”,则新文件的组将是该目录的组)4 表示强制所有者(如果文件的实际所有者(创建者)在目录中拥有“写入”权限,则新文件的所有者将是该目录的所有者)

位置“e”到“g”代表“节点”类型:(001 是 FIFO)(002 是字符设备)004 是目录 006 是块设备(您可以在 /dev 中找到一些)010 是文件 012 是符号链接..(参见先前回复中的列表)

相关内容