UNIX模式字符串的第一个字符表示什么?
我非常熟悉linux文件权限和特殊权限(粘性位,suid,guid)
但我不知道c
代表什么? 是权限还是别的? 我做了一些谷歌搜索,无法弄明白。
这是包含它的设备文件。
steven@A215:~$ ls -l /dev/null crw-rw-rw- 1 root root 1, 3 Dec 29 20:58 /dev/null
这意味着该文件是一个字符特殊文件 – 基本上是一个提供串行访问的设备文件(而不是块特殊设备,如磁盘驱动器)。 例如,终端和串行设备通过字符特殊文件( /dev/tty1
, /dev/ttyS0
等)连接。
有关设备文件的简要介绍,请参阅Linux / UNIX:设备文件 [cyberciti.biz]。 有关更详细的讨论,请参阅此stackexchange回答了解/ dev及其子目录和文件 。 要了解底层数据结构,请参阅“Linux内核模块编程指南”的第4章: 字符设备文件 [tldp.org]
字符设备标有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.
有关详细信息,请参阅此维基百科页面。
ls -l
输出一个10符号的UNIX字符串信息,通常称为权限字符串。 例如
-rw-rw-r-- 1 userName groupName 13200650 Dec 13 21:23 fileName
权限字符串或模式字符串的第一个字符(称为文件描述符 )表示文件类型,其余九个以三个一组的forms表示相关文件的权限,其中:
- 第一组三个字符(在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 socket -
b
– >阻止设备 -
p
– >管道 -
D
– >门
参考文献:
- 设备文件
- Unix权限
- 模式
第一列中的第一个字符,即上面crw-rw-rw-中的’c’,告诉知情用户文件的类型,在这种情况下是字符设备。