ОС UNIX. Защита файлов
Защита файлов в ОС UNIX осуществляется при помощи номера, идентифицирующего пользователя, и десяти битов защиты — атрибутов доступа. Права доступа подразделяются на три типа: чтение (r -read), запись (w write) и выполнение (e - execute).
Эти типы прав доступа могут быть предоставлены трем классам пользователей: владельцу файла, группе, в которую входит владелец, и всем прочим пользователям. Девять из этих битов управляют защитой по чтению, записи и исполнению для владельца файла, других членов группы владельца, и всех других пользователей.
Файл всегда связан с определенным пользователем — своим владельцем и с определенной группой. пользователя (UID) и группы (GID). Изменять права доступа к файлу разрешено только его владельцу. Изменить владельца файла может только root, изменить группу — root или владелец файла.
Атрибуты доступа определяют, что разрешено делать с данным файлом данной категории пользователей. Имеется всего три операции: чтение, запись и выполнение.
При создании файла модифицируется не сам файл, а каталог, в котором появляются новые ссылки на узлы. Удаление файла заключается в удалении ссылки. Таким образом, право на создание или удаление файла — это право на запись в каталог.
Право на выполнение каталога интерпретируется как право на поиск в нем (прохождение через него). Оно позволяет обратиться к файлу с помощью пути, содержащему данный каталог, даже тогда, когда каталог не разрешено читать, и поэтому список всех его файлов недоступен.
Существуют две стандартные формы записи прав доступа — символьная и восьмеричная. Символьная запись представляет собой цепочку из десяти знаков, первый из которых не относится собственно к правам, а обозначает тип файла.
Символьная запись: drwxrwxrwx Восьмеричная запись: 777
В символьной записи при ограничении на операцию ставится дефис (-). Например, запись drwxr-xr-x определяет, что владелец может выполнять чтение, запись и выполнение, а группа и остальные пользователи только чтение и выполнение.
В восьмеричной записи право на чтение можно представить числом 4, право на запись — числом 2, а право на выполнение — числом 1. Так, при их суммировании получается число 7, то есть разрешение на чтение, запись и выполнение.
Большинство программ создают файлы с разрешением на чтение и запись для всех пользователей, а каталоги — с разрешением на чтение, запись и поиск для всех пользователей. Этот исходный набор атрибутов логически складывается с пользовательской маской создания файла (user file-creation mask, umask), которая обычно ограничивает доступ.
Например, значения u=rwx, g=rwx, o=r-x для пользовательской маски следует понимать так: у владельца и группы остается полный набор прав, а всем остальным запрещается запись.
В восьмеричном виде оно запишется как 002 (первая цифра — ограничения для владельца, вторая — для группы, третья — для остальных; запрещение чтения — 4, записи — 2, выполнения — 1). Владелец файла может изменить права доступа к нему командой chmod.