UNIX 模式字符串的第一个字符表示什么?

UNIX 模式字符串的第一个字符表示什么?

我非常熟悉 Linux 文件权限和特殊权限(粘滞位、suid、guid)

但我不知道这c代表什么?是许可还是其他什么?我在 Google 上搜索了一下,但还是搞不清楚。

这是包含该内容的设备文件。

steven@A215:~$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Dec 29 20:58 /dev/null

在此处输入图片描述

图片参考:https://detailed.wordpress.com/2017/10/28/understanding-ls-command-output/

答案1

这意味着该文件是字符特殊文件- 基本上是一个提供串行访问的设备文件(而不是阻止特殊设备(例如磁盘驱动器)。例如,终端和串行设备通过字符特殊文件(/dev/tty1/dev/ttyS0等等)进行交互。

有关设备文件的简要介绍,请参阅Linux/UNIX:设备文件[cyberciti.biz]。有关更详细的讨论,请参阅此 stackexchange 答案了解 /dev 及其子目录和文件要了解底层数据结构,请参阅《Linux 内核模块编程指南》第 4 章:字符设备文件[tldp.org]

答案2

第一个字符标识Unix 文件类型:字符设备以模式字符串的首字母 来标记。同样,块设备以,c来标记b

$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Jan 21 21:50 /dev/null
$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Jan 21 21:50 /dev/sda

还有更多这样的特殊设备(在 Linux 中,某种意义上是文件,即一切皆文件),

d : directory
s : socket
p : pipe
D : Door
l : symbolic link etc.

看到这个维基百科页面以了解更多详情。

答案3

ls -l输出一个由 10 个符号组成的 UNIX 信息字符串,通常称为权限字符串。例如

-rw-rw-r--  1 userName groupName   13200650 Dec 13 21:23 fileName

第一个字符权限字符串或者模式字符串,被称为文件描述符,表示文件类型,其余九个数字(每三组)表示有关文件的权限,其中:

  • 第一组三个字符(10 个字符中的第一个字符之后)表示所有者的权限,
  • 第二组三项为该组指定权限,
  • 最后一组三项指定其他人(或世界)的权限。

在上面的例子中,第一个字符/符号“-”表示普通文件。

在以下例子中,

crw-rw-rw- 1 root root 1, 3 Dec 29 20:58 /dev/null
crw-rw-rw- 1 root root 1, 5 Jan 13 20:56 /dev/zero

权限字符串的第一个字符是“C”如上所述,它是一个文件类型指示器,指示字符设备

除此之外-c其他一些文件描述符包括:

  • d-> 目录
  • l-> 符号链接
  • s->Unix套接字
  • b-> 块设备
  • p-> 管道
  • D-> 门

参考:

答案4

第一列中的第一个字符,即上面的 crw-rw-rw- 中的“c”,告诉知情用户文件的类型,在本例中是字符设备。

相关内容