[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]

Руководство пользователя: Операционная система и устройства


Списки управления доступом

Списки управления доступом - это защищенные информационные ресурсы, в которых указано, кому и к каким ресурсам разрешен доступ. Операционная система обеспечивает раздельную защиту для разных режимов доступа. Владелец информации может предоставить другим пользователям права на запись или чтение для своего ресурса. Пользователь, которому предоставлены права доступа к ресурсу, может передавать эти права другим пользователям. Такая схема позволяет управлять распространением информации в системе; права доступа к объекту задаются его владельцем.

Права доступа пользовательского типа разрешают пользователю доступ только к его собственным объектам. Обычно пользователи получают также права доступа группы или права доступа по умолчанию для ресурса. Основная задача управления правами доступа состоит в определении групп пользователей, поскольку именно принадлежность к группе дает пользователю права доступа к чужим объектам.

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

Примечание: Список прав доступа для файла не может занимать более одной страницы памяти (приблизительно 4096 байт).

К спискам управления доступом применимы команды aclget, acledit и aclput.

Хотя права доступа и атрибуты объекта можно также установить командой chmod в числовом режиме (в восьмеричной нотации), функция chmod, которую вызывает эта команда, отключает расширенные права доступа. После применения команды chmod в числовом режиме к файлу с ACL расширенные права доступа будут отключены. Команда chmod в символьном режиме не отключает расширенные права доступа. Информация о числовом и символьном режимах приведена в описании команды chmod.

Базовые права доступа

Базовые права доступа представляют собой стандартные режимы доступа для владельца файла, группы и остальных пользователей. Режимы доступа - это чтение (r), запись (w) и выполнение/поиск (x).

В списке управления доступом базовые права хранятся в приведенном ниже формате, где вместо параметра Режим стоит строка rwx (прочерк (-) означает, что права доступа не заданы):

базовые права доступа:
   owner(имя пользователя): Режим
   group(имя группы): Режим
   others: Режим

Атрибуты

В список управления доступом можно добавить три атрибута: setuid (SUID), setgid (SGID) и savetext (SVTX). Эти атрибуты записываются в следующем формате:

атрибуты: SUID, SGID, SVTX

Расширенные права доступа

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

Ключевые слова permit, deny и specify означают следующее:

permit Разрешает пользователю или группе указанный режим доступа к файлу.
deny Запрещает пользователю или группе указанный режим доступа к файлу.
specify Задает для пользователя или группы права доступа к файлу.

Если пользователю запрещен определенный режим доступа ключевым словом deny или specify, его уже нельзя разрешить какой-либо другой строкой.

Для того чтобы включить расширенные права доступа, необходимо указать в списке управления доступом (ACL) ключевое слово enabled. По умолчанию вместо него стоит ключевое слово disabled (отключено).

В ACL расширенные права доступа записываются в следующем формате:

расширенные права доступа:
 разрешено | запрещено
    permit   Режим  Пользователи...: 
    deny     Режим  Пользователи...:
    specify  Режим  Пользователи...:

Каждое из ключевых слов permit, deny и specify должно находиться на отдельной строке. Параметр Режим заменяется на rwx (прочерк (-) означает, что права доступа не заданы). Параметр Пользователи заменяется на u:Имя_пользователя, g:Имя_группы или u:Имя_пользователя и g:Имя_группы, разделенные запятой.

Примечание: Если в строке указано несколько имен пользователей, эта строка не может применяться для управления доступом, поскольку каждому процессу соответствует только один ИД пользователя.

Пример списка управления доступом

Ниже приведен пример ACL:

атрибуты: SUID
базовые права доступа:
      owner(frank):  rw-
      group(system): r-x
      others: ---
расширенные права доступа:
      разрешено
        permit  rw-  u:dhs
        deny    r--  u:chas, g:system
        specify r--  u:john, g:gateway, g:mail
        permit  rw-  g:account, g:finance

Расшифровка строк ACL приведена ниже:

Проверка прав доступа

Управление правами доступа - это обязанность владельца информационного ресурса. Ресурсы защищены битами прав доступа, входящими в режим объекта. Биты прав доступа задают права, предоставленные владельцу, группе объекта и остальным пользователям. Операционная система поддерживает различные режимы доступа (чтение, запись и выполнение), которыми можно управлять независимо.

Когда пользователь входит в систему (командой login или su), ИД пользователя и группы, присвоенные его учетному файлу, связываются с пользовательскими процессами. Эти ИД и определяют права доступа процесса.

Для файлов, каталогов, именованных конвейеров, очередей сообщений, общих сегментов памяти, семафоров и устройств (специальных файлов) доступ определяется следующим образом:

Процесс с ИД, равным 0, называется процессом пользователя root. Такие процессы обычно обладают всеми правами доступа. Но если пользователь root запрашивает выполнение программы, соответствующий режим доступа предоставляется ему только в случае, если права на выполнение предоставлены по крайней мере одному пользователю.

Список идентификаторов в ACL соответствует процессу, если все идентификаторы из этого списка соответствуют одному из действующих идентификаторов запрашивающего процесса. Идентификатор типа USER (пользовательского типа) считается подходящим, если он равен действующему ИД пользователя процесса. Идентификатор типа GROUP (группы) считается подходящим, если он равен действующему ИД группы или одной дополнительных групп. Например, ACE со списком идентификаторов:

USER:fred, GROUP:philosophers, GROUP:yankee_fans

будет соответствовать процессу с ИД пользователя fred и набором групп:

philosophers, philanthropists, yankee_fans и good_sports

но не будет соответствовать процессу с ИД пользователя fred и набором групп:

philosophers, iconoclasts, redsox_fans и poor_sports

Обратите внимание, что ACE со следующим списком идентификаторов будет соответствовать обоим процессам:

USER:fred, GROUP:philosophers

Другими словами, список идентификаторов в ACE работает как набор условий, которые должны быть выполнены для предоставления (запрещения) определенного режима доступа.

Все проверки прав доступа для данных объектов выполняются на уровне системных вызовов при первом обращении к объекту. Поскольку для объектов SVIPC состояние доступа не хранится, проверка выполняется при каждом обращении. Для доступа к объектам по имени файловой системы необходимо знать фактическое имя объекта. Имена указываются либо относительно рабочего каталога процесса, либо полностью, начиная с корневого каталога. Все имена могут быть получены одним из этих способов.

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

Просмотр информации об управлении доступом (команда aclget)

Информацию об управлении доступом можно просмотреть командой aclget. При этом будут показаны атрибуты, базовые и расширенные права доступа.

Например, для просмотра информации об управлении доступом к файлу status введите:

aclget status

Нажмите Enter.

Будет показана информация об управлении доступом: атрибуты, базовые и расширенные права доступа. См., например, Пример списка управления доступом .

Для сохранения информации об управлении доступом к файлу plans в файле acl1 введите:

aclget -o acl1 plans 

Нажмите Enter.

Полный синтаксис приведен в описании команды aclget в книге AIX 5L Version 5.1 Commands Reference.

Указание информации об управлении доступом (команда aclput)

Информацию об управлении доступом можно задать командой aclput.

Примечание: Список прав доступа для файла не может занимать более одной страницы памяти (приблизительно 4096 байт).

Например, для указания информации об управлении доступом к файлу status, сохраненной в файле acldefs, введите:

aclput -i acldefs status

Нажмите Enter.

Для указания информации об управлении доступом к файлу status, совпадающей с информацией об управлении доступом к файлу plans, введите:

aclget plans | aclput status

Нажмите Enter.

Полный синтаксис приведен в описании команды aclput в книге AIX 5L Version 5.1 Commands Reference.

Изменение информации об управлении доступом (команда acledit)

Информацию об управлении доступом можно изменить командой acledit. Эта команда показывает текущую информацию об управлении доступом и позволяет владельцу файла изменять ее. Перед сохранением любых изменений команда запрашивает подтверждение.

Примечание: В переменной среды EDITOR должен быть указан полный путь, иначе команда acledit завершится неудачно.

Будет показана информация об управлении доступом: атрибуты, базовые и расширенные права доступа. См., например, Пример списка управления доступом.

Например, для редактирования информации об управлении доступом к файлу plans введите:

acledit plans

Нажмите Enter.

Полный синтаксис приведен в описании команды acledit в книге AIX 5L Version 5.1 Commands Reference.


[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]