Ролевое управление доступом (RBAC)
Команды
Файл /etc/security/exec_attr представляет собой базу данных атрибутов запуска программ, ассоциированных с тем или иным профилем (из prof_attr);
# execution attributes for profiles. see exec_attr(4) # #pragma ident "@(#)exec_attr 1.1 01/10/23 SMI" # # iPlanet Directory Management:suser:cmd::: /usr/sbin/directoryserver:uid=0 Software Installation:suser:cmd:::/usr/bin/pkgparam:uid=0 Network Management:suser:cmd:::/usr/sbin/in.named:uid=0 File System Management:suser:cmd:::/usr/sbin/mount:uid=0 FTP Management:suser:cmd:::/usr/sbin/ftprestart:euid=0 Software Installation:suser:cmd:::/usr/bin/pkgtrans:uid=0 Name Service Security:suser:cmd:::/usr/bin/nisaddcred:euid=0 Mail Management:suser:cmd:::/usr/sbin/makemap:euid=0 Software Installation:suser:cmd:::/usr/sbin/install:euid=0 Process Management:suser:cmd:::/usr/bin/crontab:euid=0 Audit Review:suser:cmd:::/usr/sbin/praudit:euid=0 Name Service Security:suser:cmd:::/usr/sbin/ldapclient:uid=0 Media Backup:suser:cmd:::/usr/bin/mt:euid=0
Формат записей в файле /etc/security/exec_attr предполагает обязательное указание имени профиля прав, жестко установленных значений полей policy и cmd, идентификатора и, при необходимости, атрибутов:
name:policy:type:res1:res2:id:attr
name - имя профиля прав (помните регистр букв в имени важен!);
policy - политика, ассоциированная с профилем прав, единственное допустимое значение этого поля в настоящее время - suser ;
type - тип объекта, определенного в данной записи, единственное допустимое значение этого поля в настоящее время - cmd ;
id - строка, являющаяся уникальным идентификатором объекта, описанного в данной записи; для типа cmd этот идентификатор, кроме того, является полным именем файла выполняемой программы или символом звездочка ( * ), который разрешает запустить любую команду. Можно указывать звездочку в конце полного имени файла, что будет означать любую программу в соответствующем каталоге;
attr - атрибуты вида имя=значение, разделенные точкой с запятой; допустимые варианты атрибутов: euid, uid, egid и gid.
Все компоненты RBAC могут быть использованы как в виде файлов, так и в виде карт NIS или таблиц NIS+. Соответственно, в файле /etc/nsswitch.conf понадобится указать порядок обращения к различным источникам.
Итак, схема назначений прав в системе ролей следующая: определенные программы могут быть запущены не только пользователем root, что традиционно, но и другими пользователями. Для этого существуют права ( авторизации, authorizations), которые могут быть назначены напрямую пользователям (что нежелательно с организационной точки зрения) или профилям прав. Профиль прав, представляющий собой набор определенных прав, назначается роли. Пользователь может претендовать на то, что он будет играть ту или иную роль, если он знает пароль этой роли и может "перевоплотиться" в нее с помощью команды su. Рис. 21.1 иллюстрирует взаимоотношения компонентов RBAC между собой.
Команды, поддерживающие роли
Следующие команды проверяют права (authorizations) пользователя, который пытается их выполнить, и поддерживают систему RBAC. Это значит, что выполнить эти команды может не только root, но и другие пользователи, которые начали играть определенную роль, "переключившись" в нее:
- все программы, запускаемые внутри как приложения из Solaris Management Console;
- программы запланированного запуска at, atq, batch, crontab ;
- команды, связанные с работой физических устройств - allocate, deallocate, list_devices, cdrw.
Команды управления ролями
Управление ролями производится путем редактирования файлов в каталоге /etc/security или посредством программ roleadd, rolemod и roledel. Кроме того, управлять ролями и назначением прав в RBAC можно с помощью Solaris Management Console.
Можно, например, добавить роль printmgr с назначением прав по умолчанию:
roleadd printmgr
А с помощью команды
roleadd -D
эти самые установки по умолчанию можно увидеть воочию:
roleadd -D group=other,1 project=default,3 basedir=/home skel=/etc/skel shell=/bin/pfsh inactive=0 expire= auths= profiles=All
Для выполнения команд, предполагающих применение ролей, следует воспользоваться специальными командными процессорами, в которых реализована работа с ролями. Имеется набор таких командных процессоров, функционально эквивалентных своим "безролевым" аналогам: /bin/pfsh, /bin/pfcsh, или /bin/pfksh. Эти командные процессоры следует назначать в качестве login shell для ролей.
Управление ролями в Solaris Management Console
В Solaris Management Console возможно управление ролями (пункт Administrative Roles) в графическом интерфейсе. Для этого потребуется ввести имя и пароль роли, которая имеет право на такое администрирование (часто это пользователь root).
Рисунок 21.2 иллюстрирует сказанное: в главном меню Solaris Management Console следует выбрать Users, а для администрирования ролей в открывшемся окне справа - Administrative Roles.