Я очень хорошо знаком с правами доступа к файлам linux и специальными привилегиями (sticky bit, 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]. Для более детального обсуждения смотрите ответ на этот вопрос Понимание /dev и его подкаталогов и файлов . Чтобы узнать о базовых структурах данных, обратитесь к Главе 4 Руководства по программированию модулей ядра Linux: Файлы символьных устройств [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
Первый символ строки разрешения или строки режима , известный как дескриптор файла , указывает тип файла, а остальные девять, взятые в группах по три, указывают на разрешения для данного файла, где:
Хотя в следующих примерах
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 socketb
-> блочное устройствоp
-> -> символическое устройство- -> символическое устройство -
-
-
.> pipeline
D
-> DoorПервый символ в первой колонке, т.е. 'c ' в crw-rw-rw- выше, сообщает информированному пользователю тип файла, в данном случае - устройство, использующее символы.