Linux и UNIX: программирование в shell. Руководство разработчика. - страница 4

стр.

ствующего права. Система разрешений подробно описана ниже
>1Количество жестких ссылок на файл
>rootИдентификатор владельца файла
>rootИдентификатор группы, в которую входит владелец файла
>3756Размер файла в байтах
>Oct 14 04:44Дата и время последнего изменения файла
>dmesgИмя файла

1.2. Типы файлов

В начале строки режима может стоять не только символ ' — " или d, ведь в каталоге насчитывается до семи различных типов записей (табл. 1.1):

Таблица 1.1. Типы файлов


dКаталог
lСимволическая ссылка (указатель на другой файл)
sСокет
bСпециальный блочный файл
сСпециальный символьный файл
pФайл именованного канала
Обычный файл или, если выразиться точнее, ни один из файлов, перечисленных выше

1.3. Права доступа к файлам

Давайте создадим файл, используя команду touch:

>$ touch myfile

Теперь выполним команду ls -1:

>$ ls -1 myfile

>-rw‑r--r-- 1 dave admin 0 Feb 19 22:05 myfile


Мы получили пустой файл, и, как и ожидалось, первый символ в строке режима свидетельствует о том, что это обычный файл. В результате выполнения большинства операций по созданию файлов образуются либо обычные файлы, либо символические ссылки (о них говорится ниже).


Права владельцаПрава группыПрава остальных пользователей
rw-r--r--

Следующие три символа в строке режима (rw-) описывают права доступа к созданному файлу со стороны его владельца (пользователь dave). За ними следуют символы r--, указывающие на права группы, в которую входит этот пользователь (в данном случае он является членом группы admin). Последние три символа (r--) представляют собой права пользователей, не принадлежащих к данной группе.

Существует три вида разрешений:


rПраво чтения данного файла
wПраво записи/изменения данного файла
xПраво выполнения данного файла, если он является сценарием или программой

Следовательно, строку режима для файла myfile необходимо интерпгретировать следующим образом:


-rw-r--r--
Обычный файлВладелец можетПользователи указанной группы могут осуществлять только чтение этого файлаОстальные пользователи также могут осуществлять только чтение этого файла
осуществлять чтение и запись этого файла

Возможно, вы обратили внимание на то, что при создании файла myfile владелец не получил право выполнять данный файл. Это связано с ограничениями, установленными по умолчанию в системе. Ситуация прояснится чуть позже, когда мы изучим команду umask.

Рассмотрим несколько дополнительных примеров (табл. 1.2).

Таблица 1.2. Примеры строк режима

Строка режима Результат


r-- --- ---Доступ к файлу разрешен только владельцу, который может читать содержимое файла, но не имеет права осуществлять запись в файл и выполнять его
r--r-- ---Доступ к файлу возможен только для чтения и разрешен владельцу и всем пользователям группы, в которую он входит
r--r--r--Любой пользователь может получить доступ к файлу для чтения, остальные действия запрещены
rwx --- ---Владелец имеет полный доступ к файлу, для остальных пользователей файл недоступен
rwxr‑x ---Владелец имеет полный доступ к файлу; пользователи группы, в которую входит владелец, могут читать файл и запускать его на выполнение; для остальных пользователей файл недоступен
rwxr‑x r‑xВладелец имеет полный доступ к файлу; остальные пользователи могут читать файл и запускать его на выполнение
rw‑rw- ---Владелец и пользователи группы, в которую он входит, могут осуществлять чтение и запись файла; для остальных пользователей файл недоступен
rw‑rw‑r--Владелец и пользователи группы, в которую он входит, могут осуществлять чтение и запись файла; остальным пользователям разрешено только чтение файла
rw‑rw‑rw-Все пользователи могут осуществлять чтение и запись файла

1.4. Изменение прав доступа к файлу

Вы можете изменять режим доступа к файлам, которыми владеете, с помощью команды chmod. Аргументы этой команды могут быть заданы либо в числовом виде (абсолютный режим), либо в символьном (символьный режим). Сначала рассмотрим символьный режим.

1.4.1. Символьный режим

Общий формат команды chmod для символьного режима таков:

>chmod [кто] оператор [разрешения] файл

Значения параметра кто:

u Владелец

g Группа

o Другие пользователи