Списки управления доступом - это защищенные информационные ресурсы, в которых указано, кому и к каким ресурсам разрешен доступ. Операционная система обеспечивает раздельную защиту для разных режимов доступа. Владелец информации может предоставить другим пользователям права на запись или чтение для своего ресурса. Пользователь, которому предоставлены права доступа к ресурсу, может передавать эти права другим пользователям. Такая схема позволяет управлять распространением информации в системе; права доступа к объекту задаются его владельцем.
Права доступа пользовательского типа разрешают пользователю доступ только к его собственным объектам. Обычно пользователи получают также права доступа группы или права доступа по умолчанию для ресурса. Основная задача управления правами доступа состоит в определении групп пользователей, поскольку именно принадлежность к группе дает пользователю права доступа к чужим объектам.
Списки управления доступом (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 приведена ниже:
Примечание: В случае, если к процессу применяются несколько расширенных записей, запрещения имеют больший приоритет, чем разрешения.
Полный синтаксис приведен в описании команды acledit в книге AIX 5L Version 5.1 Commands Reference.
Управление правами доступа - это обязанность владельца информационного ресурса. Ресурсы защищены битами прав доступа, входящими в режим объекта. Биты прав доступа задают права, предоставленные владельцу, группе объекта и остальным пользователям. Операционная система поддерживает различные режимы доступа (чтение, запись и выполнение), которыми можно управлять независимо.
Когда пользователь входит в систему (командой 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. При этом будут показаны атрибуты, базовые и расширенные права доступа.
Например, для просмотра информации об управлении доступом к файлу status введите:
aclget status
Нажмите Enter.
Будет показана информация об управлении доступом: атрибуты, базовые и расширенные права доступа. См., например, Пример списка управления доступом .
Для сохранения информации об управлении доступом к файлу plans в файле acl1 введите:
aclget -o acl1 plans
Нажмите Enter.
Полный синтаксис приведен в описании команды aclget в книге AIX 5L Version 5.1 Commands Reference.
Информацию об управлении доступом можно задать командой 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. Эта команда показывает текущую информацию об управлении доступом и позволяет владельцу файла изменять ее. Перед сохранением любых изменений команда запрашивает подтверждение.
Примечание: В переменной среды EDITOR должен быть указан полный путь, иначе команда acledit завершится неудачно.
Будет показана информация об управлении доступом: атрибуты, базовые и расширенные права доступа. См., например, Пример списка управления доступом.
Например, для редактирования информации об управлении доступом к файлу plans введите:
acledit plans
Нажмите Enter.
Полный синтаксис приведен в описании команды acledit в книге AIX 5L Version 5.1 Commands Reference.