ТОП 10:

Ярлыки объектов файловой системы



При создании объектов файловой системы – файлов, каталогов и т. п. – каждому приписывается ярлык. Ярлык включает в себя UID – идентификатор пользователя-хозяина файла, GID – идентификатор группы, которой принадлежит файл, тип объекта и набор так называемых атрибутов (код доступа), а также некоторую дополнительную информацию. Атрибуты (или код доступа) определяют, кто и что имеет право делать с файлом, они описаны ниже:

 

Пример 4. Атрибуты каталогов, показанные командой ls -l

итого 88

drwxr-xr-x 2 root root 4096 Апр 4 2008 bin

drwxr-xr-x 4 root root 4096 Апр 4 2008 boot

drwxr-xr-x 10 root root 3520 Апр 5 14:26 dev

drwxr-xr-x 90 root root 8192 Апр 5 14:22 etc

drwxr-xr-x 3 root root 4096 Апр 4 21:22 home

drwxr-xr-x 11 root root 4096 Апр 4 2008 lib

drwx------ 2 root root 16384 Апр 4 2008 lost+found

drwxr-xr-x 4 root root 4096 Апр 5 14:22 media

drwxr-xr-x 2 root root 4096 Июл 11 2006 misc

drwxr-xr-x 2 root root 4096 Окт 20 2005 mnt

drwxr-xr-x 2 root root 0 Апр 5 14:21 net

drwxr-xr-x 2 root root 4096 Окт 20 2005 opt

dr-xr-xr-x 106 root root 0 Апр 5 2009 proc

drwxr-x--- 31 root root 4096 Апр 5 14:29 root

drwxr-xr-x 2 root root 8192 Апр 4 2008 sbin

drwxr-xr-x 2 root root 4096 Окт 20 2005 selinux

drwxr-xr-x 2 root root 4096 Окт 20 2005 srv

drwxr-xr-x 11 root root 0 Апр 5 2009 sys

drwxrwxrwt 16 root root 4096 Апр 5 14:26 tmp

drwxr-xr-x 15 root root 4096 Апр 4 2008 usr

drwxr-xr-x 21 root root 4096 Апр 4 2008 var

Ключ "-l" утилиты ls определяет длинный (long) формат выдачи (справа налево): имя файла, время последнего изменения файла, размер в байтах, группа, хозяин, количество жестких ссылок и строчка атрибутов. Первый символ в строчке атрибутов определяет тип файла. Тип "-" отвечает "обычному" файлу, а тип "d" – каталогу (directory).

Несмотря на то, что создание жестких ссылок на каталог невозможно, значение поля "количество жестких ссылок" (второй столбец) для всех каталогов примера равно двум, а не одному. На самом деле этого и следовало ожидать, потому что любой каталог файловой системы Linux всегда имеет не менее двух имен: собственное (например, tmp) и имя "." в самом этом каталоге (tmp/.). Если же в каталоге создать подкаталог, количество жестких ссылок на этот каталог увеличится на 1 за счет имени ".." в подкаталоге (например, tmp/subdir1/..):

Иерархия прав доступа

Рассмотрим более подробно, чему соответствуют девять символов в строке атрибутов, выдаваемой ls. Эти девять символов имеют вид "rwxrwxrwx", где некоторые "r", "w" и "x" могут заменяться на "-". Очевидно, буквы отражают принятые в Linux три вида доступа – чтение, запись и использование – однако в ярлыке они присутствуют в трех экземплярах!

Дело в том, что любой пользователь (процесс) Linux по отношению к любому файлу может выступать в трех ролях: как хозяин (user), как член группы, которой принадлежит файл (group), и как посторонний (other), никаких отношений собственности на этот файл не имеющий. Строка атрибутов – это три тройки "rwx", описывающие права доступа к файлу хозяина этого файла (первая тройка, "u"), группы, которой принадлежит файл (вторая тройка, "g") и посторонних (третья тройка, "o"). Если в какой-либо тройке не хватает буквы, а вместо нее стоит "-", значит, пользователю в соответствующей роли будет в соответствующем виде доступа отказано.

При выяснении отношений между файлом и пользователем, запустившим процесс, роль определяется так:

1. Если UID файла совпадает с UID процесса, пользователь – хозяин файла

2. Если GID файла совпадает с GID любой группы, в которую входит пользователь, он – член группы, которой принадлежит файл.

3. Если ни UID, ни GID файла не пересекаются с UID процесса и списком групп, в которые входит запустивший его пользователь, этот пользователь – посторонний.

Именно в роли хозяина пользователь (процесс) может изменять ярлык файла. Единственное, чего не может делать хозяин со своим файлом – менять ему хозяина.

Права доступа изменяются с помощью трех команд: chown (change owner, сменить владельца), chgrp (change group, сменить группу) и chmod с расширенным форматом параметра: перед частью, определяющей доступ (перед знаком "+" или "-"), могут быть перечислены роли "u", "g", "o" и "a" (all, что соответствует "ugo"), доступ для которых изменяется. Кроме того, при задании доступа можно вместо "+" и "-" использовать "=", тогда для заданных ролей указанные способы доступа разрешаются, а неуказанные – запрещаются. Вместо пары команд chown хозяин файл; chgrp группа файл можно применять одну: chown хозяин:группа файл, которая изменяет одновременно и UID, и GID файла (каталога, ссылки и т. п.).

Определение прав доступа процесса к объекту файловой системы (например, файла) происходит так. Используя UID процесса, список групп, в которые входит пользователь, запустивший этот процесс, UID файла и GID файла, система определяет роль процесса по отношению к файлу, а затем обращается к соответствующей тройке атрибутов файла. Процесс не может выступать сразу в нескольких ролях.

 







Последнее изменение этой страницы: 2017-02-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.209.82.74 (0.006 с.)