В Linux, такие объекты как файлы, или каталоги, или процессы обычно принадлежат тому пользователю, который создал их или инициировал. Существует несколько исключений из этого правила. Группа ассоциированная с файлом или каталогом зависит от первичной группы к которой принадлежит пользователь создавший этот объект.
Когда вы создаете новый файл или каталог, исходные права доступа для этого объекта устанавливаются в соответствии с предопределенной схемой. Как владелец файла или каталога,вы можете изменять права доступа к этому объекту. Например, вы можете защитить файлы содержащие чувствительные данные от чтения другими пользователями и вы можете предоставить право членам вашей группы или другим пользователям на запись, чтение, или исполнение некоторых ваших файлов, где это необходимо. Как root
, вы можете так же изменять владельца файлов или каталогов.
Три набора прав определены для каждого файлового объекта в Linux системе. Эти наборы включают права чтения, записи и исполнения для каждого из трех типов пользователей—владелец, группа, и другие пользователи. Вы можете видеть и изменять права доступа файлов и каталогов в файловом менеджере вашего рабочего стола или из командной строки (см. Раздел 8.5, «Изменение прав доступа к файлу»).
Следующий пример показывает результат работы команды ls -l
в командной строке. Эта команда отображает содержимое каталога и показывает подробности для каждого файла и подкаталога.
Пример 7.1. Права доступа для файлов и каталогов
-rw-r----- 1 tux users 0 2006-06-23 16:08 checklist.txt -rw-r--r-- 1 tux users 53279 2006-06-21 13:16 gnome_quick.xml -rw-rw---- 1 tux users 0 2006-06-23 16:08 index.htm -rw-r--r-- 1 tux users 70733 2006-06-21 09:35 kde-start.xml -rw-r--r-- 1 tux users 47896 2006-06-21 09:46 kde_quick.xml drwxr-xr-x 2 tux users 48 2006-06-23 16:09 local -r-xr-xr-x 1 tux users 624398 2006-06-23 15:43 tux.jpg
Как показано в третьей колонке, все объекты принадлежат пользователю tux
. Они ассоциированы с группой users
, которая является первичной группой для пользователя tux
. Чтобы получить информацию о правах доступа, первая колонка списка должна быть изучена подробнее. Давайте посмотрим на файл kde-start.xml
:
Тип |
Права пользователя |
Права группы |
Права для остальных |
|
|
|
|
Первая колонка списка состоит из ведущего символа сопровождаемого девятью символами сгруппированными в три блока. Ведущий символ указывает тип файлового объекта: в нашем случае, прочерк (–
) показывает, что kde-start.xml
это файл. Если вы обнаружите символ d
на его месте, это означает, что объект является каталогом (как local
в примере выше). Следующие три блока показывают права доступа для владельца, группы и остальных пользователей (слева направо). Каждый блок следует одному и тому же шаблону: первая позиция показывает право на чтение (r
), следующая—на запись (w
), последняя показывает право на выполнение (x
). Отсутствие любого из прав указывается символом -
. В нашем примере, владелец kde-start.xml
имеет доступ на чтение и запись в файл, но не может запустить его на исполнение (т.е. выполнить). Группа users
может читать файл, но не может записать или выполнить его. Это справедливо и для других пользователей, как показано в третьем блоке символов.
Права доступа имеют несколько разное действие в зависимости от типа объекта к которым они применяются: файл или каталог. Следующая таблица описывает различия более подробно:
Таблица 7.2. Права доступа для файлов и каталогов
Право доступа |
Файл |
Каталог |
---|---|---|
Чтение (r) |
Пользователи могут открыть и прочитать файл. |
Пользователи могут просмотреть содержимое каталога. Например, без этих прав пользователи не смогут просмотреть содержимое каталога с помощью ls |
Запись (w) |
Пользователи могут изменить файл: они могу добавить или удалить данные внутри файла. Однако, это не включает право на удаление файла из каталога до тех пор пока они не имеют права записи в каталоге в котором расположен файл. |
Пользователи могут создавать, переименовывать или удалять файлы внутри каталога. |
Выполнение (x) |
Пользователи могут выполнить файл. Это разрешение значимо только для таких файлов как программы или скрипты, не для текстовых файлов. Если операционная система сможет выполнить файл непосредственно, от пользователей не требуется право на чтение для выполнения файла. Однако, если файл должен быть предварительно интерпретирован, например, это shell скрипт или программа на perl, необходимо дополнительное право на чтение. |
Пользователи могут перейти в каталог или пройти через него, чтобы выполнить там файл. Если они не имею право чтения этого каталога они не могут вывести список файлов, но могут получить к ним доступ если знают их имя. |
Заметьте, что доступ к конкретному файлу всегда зависит от корректной комбинации прав доступа к самому файлу и каталогу в котором он расположен.