Что обозначает первый символ строки режима UNIX?

Я хорошо знаком с правами доступа к файлам 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

4 ответа

Это означает, что файл представляет собой специальный символьный файл - в основном файл устройства, который обеспечивает последовательный доступ (в отличие от блочного специального устройства, такого как дисковод). Например, терминалы и последовательные устройства связаны через специальные символьные файлы (/dev/tty1, /dev/ttyS0 и так далее).

Краткое введение в файлы устройств см. В разделе Linux / UNIX: файлы устройств [cyberciti.biz]. Более подробное обсуждение смотрите в этом ответе stackexchange Понимание /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

Первый символ строки разрешений или строки режима, известный как дескриптор файла, указывает тип файла, а оставшиеся девять, взятые группами по три, указывают разрешения для соответствующего файла, где:

  • первая группа из трех символов (после первого символа из 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 -> Дверь

Рекомендации:

Первый символ в первом столбце, т. Е. "C" в crw-rw-rw- выше, сообщает информированному пользователю тип файла, в данном случае символьное устройство.

Другие вопросы по тегам