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

29

Я хорошо знаком с правами доступа к файлам 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
user169254
источник
Кажется, у всех /devесть это специальное разрешение.
Сет
1
Это не разрешение. Это тип файла.
Жиль "ТАК - перестань быть злым"

Ответы:

34

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

Краткое введение в файлы устройств см. В разделе Linux / UNIX: файлы устройств [cyberciti.biz]. Более подробное обсуждение смотрите в этом ответе stackexchange Понимание / dev и его подкаталогов и файлов . Чтобы узнать о базовых структурах данных, обратитесь к Главе 4 Руководства по программированию модуля ядра Linux: Файлы символьных устройств [tldp.org]

steeldriver
источник
3
Хорошо, но будет лучше, если вы немного расширите свой ответ и предоставите несколько полезных ссылок. :)
Саурав Кумар
3
@SauravKumar, пожалуйста, не стесняйтесь добавлять некоторые - я не смог найти ничего на подходящем уровне (либо ничего не добавил, либо погрузился прямо в struct char_deviceпрограммирование ядра кода на C)
steeldriver
@steeldriver Это может дать вам начало :)
Сет
20

Символьное устройство помечается 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.

Смотрите эту страницу википедии для более подробной информации.

souravc
источник
Есть ли способ, чтобы кошка это?
Эдик Мкоян
5

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 -> Дверь

Ссылки:

точный
источник
2

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

Maythux
источник