Что обозначает первый символ строки режима 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
37
задан 21 January 2014 в 23:10

4 ответа

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

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

43
ответ дан 21 January 2014 в 23:10

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

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

23
ответ дан 21 January 2014 в 23:10

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 socket
    • b -> блочное устройство
    • p -> -> символическое устройство- -> символическое устройство -

      -

      -

      .> pipeline

    • D -> Door

    References:

6
ответ дан 21 January 2014 в 23:10

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

2
ответ дан 21 January 2014 в 23:10

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

Похожие вопросы: