Linux и UNIX: программирование в shell. Руководство разработчика
Шрифт:
запись относится к каталогу). Остальные символы делятся на три
категории:
rwx — права владельца (первая триада);
r-x — права группы (вторая триада);
r-x — права остальных пользователей (последняя триада).
Символ r означает право чтения, символ w — право записи,
символ x — право выполнения, символ ' — ' -oтсутствие соответ-
ствующего
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 [кто] оператор [разрешения] файл