Що означає перший символ рядка режиму UNIX?


29

Мені дуже знайомі права доступу до файлів Linux та спеціальні perms (липкий біт, suid, guide)

Але я не знаю, для чого cвиступає? Це дозвіл чи щось інше? Я трохи погуглився і не можу цього зрозуміти.

Ось файл пристрою, у якому є.

steven@A215:~$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Dec 29 20:58 /dev/null

Схоже, на все /devє спеціальний дозвіл.
Сет


1
Це не дозвіл. Це тип файлу.
Жил "ТАК - перестань бути злим"

Відповіді:


34

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

Коротке ознайомлення з файлами пристроїв див. У Linux / UNIX: Файли пристроїв [cyberciti.biz]. Для більш детального обговорення дивіться цю відповідь на зміну стакшнів Розуміння / dev та її підкаталоги та файли . Щоб дізнатися про основні структури даних, див. Розділ 4 Посібника з програмування модуля ядра Linux: Файли символьних пристроїв [tldp.org]


3
Хоча добре, але буде краще, якщо ви трохи розгорнете свою відповідь та надасте корисні посилання. :)
Саурав Кумар

3
@SauravKumar, будь ласка, не соромтесь додати щось - я не зміг знайти нічого на відповідному рівні (або нічого не додав, або занурився прямо в struct char_deviceпрограмування коду С)
steeldriver

@steeldriver Це може вас почати :)
Сет

20

Пристрій символів позначено символом a 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.

Дивіться цю сторінку вікіпедії для отримання більш детальної інформації.


чи є спосіб це котити?
Едік Мкоян

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- вище, повідомляє інформованому користувачеві тип файлу, в даному випадку символьний пристрій.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.