Опубликован: 04.07.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Европейский Университет в Санкт-Петербурге
Лекция 9:

Ролевое управление доступом (RBAC). Вопросы безопасности

< Лекция 8 || Лекция 9: 123 || Лекция 10 >

Полномочия

Полномочие (в предыдущем издании этой книги мы использовали термин "авторизация", но "полномочие" – более понятный термин, да и по-русски так лучше) представляет собой право, включенное в профиль или данное пользователю, выполнять определенные действия в системе. В Solaris доступны только предопределенные полномочия, добавить новое нельзя. Список полномочий хранится в файле /etc/security/auth_attr:

#
# Copyright (c) 2001 by Sun Microsystems, Inc. All rights reserved.
#
# /etc/security/auth_attr
#
# authorization attributes. see auth_attr(4)
#
#pragma ident "@(#)auth_attr 1.1 01/03/19 SMI"
#
solaris.admin.volmgr.:::Logical Volume Manager::
solaris.admin.volmgr.write:::Manage Logical Volumes::help=AuthVolmgrWrite.html
solaris.admin.volmgr.read:::View Logical Volumes::help=AuthVolmgrRead.html
solaris.admin.printer.modify:::Update Printer Information::help=AuthPrinter
Modify.html
solaris.admin.serialmgr.read:::View Serial Ports::help=AuthSerialmgrRead.html
solaris.admin.logsvc.:::Log Viewer::help=AuthLogsvcHeader.html
solaris.admin.procmgr.user:::Manage Owned Processes::help=AuthProcmgrUser.html
solaris.admin.usermgr.read:::View Users and Roles::help=AuthUsermgrRead.html
solaris.profmgr.:::Rights::help=ProfmgrHeader.html
solaris.admin.procmgr.admin:::Manage All Processes::help=AuthProcmgrAdmin.html
solaris.admin.logsvc.write:::Manage Log Settings::help=AuthLogsvcWrite.html
solaris.admin.serialmgr.:::Serial Port Manager::help=AuthSerialmgrHeader.html
solaris.admin.fsmgr.write:::Mount and Share Files::help=AuthFsmgrWrite.html
solaris.admin.dcmgr.read:::View OS Services, Patches and Diskless Clients::
help=AuthDcmgrRead.html
solaris.device.cdrw:::CD-R/RW Recording Authorizations::help=DevCDRW.html
solaris.admin.usermgr.:::User Accounts::help=AuthUsermgrHeader.html
solaris.role.delegate:::Assign Owned Roles::help=AuthRoleDelegate.html
solaris.admin.patchmgr.read:::View Patches::help=AuthPatchmgrRead.html
solaris.project.read:::View Projects::help=AuthProjmgrRead.html
solaris.profmgr.write:::Manage Rights::help=AuthProfmgrWrite.html
solaris.system.shutdown:::Shutdown the System::help=SysShutdown.html
solaris.device.grant:::Delegate Device Administration::help=DevGrant.html
solaris.:::All Solaris Authorizations::help=AllSolAuthsHeader.html
solaris.project.write:::Manage Projects::help=AuthProjmgrWrite.html
solaris.admin.serialmgr.modify:::Manage Serial
Ports::help=AuthSerialmgrModify.html
solaris.admin.patchmgr.:::Patch Manager::
solaris.admin.diskmgr.write:::Manage Disks::help=AuthDiskmgrWrite.html
solaris.device.revoke:::Revoke or Reclaim Device::help=DevRevoke.html
solaris.jobs.grant:::Delegate Cron & At Administration::help=JobsGrant.html
solaris.dhcpmgr.write:::Modify DHCP Service Configuration::help=DhcpmgrWrite.
html
solaris.network.hosts.write:::Manage Computers and Networks::help=Network
HostsWrite.html
solaris.mail.mailq:::Mail Queue::help=MailQueue.html
solaris.admin.dcmgr.clients:::Manage Diskless
Clients::help=AuthDcmgrClients.html
solaris.project.:::Solaris Projects::
solaris.admin.logsvc.read:::View Log Files::help=AuthLogsvcRead.html
solaris.admin.fsmgr.read:::View Mounts and Shares::help=AuthFsmgrRead.html
solaris.admin.fsmgr.:::Mounts and Shares::help=AuthFsmgrHeader.html
solaris.jobs.user:::Manage Owned Jobs::help=AuthJobsUser.html
solaris.role.assign:::Assign All Roles::help=AuthRoleAssign.html
solaris.network.hosts.:::Computers and Networks::help=NetworkHostsHeader.html
solaris.admin.usermgr.write:::Manage Users::help=AuthUsermgrWrite.html
solaris.compsys.read:::View Computer System Information::help=AuthCompSys
Read.html
solaris.audit.:::Audit Management::help=AuditHeader.html
solaris.profmgr.read:::View Rights::help=AuthProfmgrRead.html
solaris.device.config:::Configure Device Attributes::help=DevConfig.html
solaris.profmgr.delegate:::Assign Owned Rights::help=AuthProfmgrDelegate.html
solaris.admin.printer.delete:::Delete Printer Information::help=AuthPrinter
Delete.html
solaris.admin.dcmgr.admin:::Manage OS Services and
Patches::help=AuthDcmgrAdmin.html
solaris.admin.printer.:::Printer Information::help=AuthPrinterHeader.html
solaris.admin.diskmgr.:::Disk Manager::help=AuthDiskmgrHeader.html
solaris.role.write:::Manage Roles::help=AuthRoleWrite.html
solaris.role.:::Roles::help=RoleHeader.html
solaris.admin.patchmgr.write:::Add and Remove
Patches::help=AuthPatchmgrWrite.html
solaris.mail.:::Mail::help=MailHeader.html
solaris.admin.procmgr.:::Process Manager::help=AuthProcmgrHeader.html
solaris.device.allocate:::Allocate Device::help=DevAllocate.html
solaris.system.:::Machine Administration::help=SysHeader.html
solaris.compsys.write:::Manage Computer System Information::help=AuthCompSys
Write.html
solaris.compsys.:::Computer System Information::help=AuthCompSysHeader.html
solaris.network.hosts.read:::View Computers and
Networks::help=NetworkHostsRead.html
solaris.device.:::Device Allocation::help=DevAllocHeader.html
solaris.snmp.:::SNMP Management::help=AuthSnmpHeader.html
solaris.admin.dcmgr.:::OS Server Manager::help=AuthDcmgrHeader.html
solaris.dhcpmgr.:::DHCP Service Management::help=DhcpmgrHeader.html
solaris.login.enable:::Enable Logins::help=LoginEnable.html
solaris.admin.logsvc.purge:::Remove Log Files::help=AuthLogsvcPurge.html
solaris.audit.read:::Read Audit Trail::help=AuditRead.html
solaris.login.remote:::Remote Login::help=LoginRemote.html
solaris.system.date:::Set Date & Time::help=SysDate.html
solaris.admin.serialmgr.delete:::Delete Serial
Ports::help=AuthSerialmgrDelete.html
solaris.audit.config:::Configure Auditing::help=AuditConfig.html
solaris.jobs.admin:::Manage All Jobs::help=AuthJobsAdmin.html
solaris.grant:::Grant All Solaris Authorizations::help=PriAdmin.html
solaris.jobs.:::Job Scheduler::help=JobHeader.html
solaris.profmgr.execattr.write:::Manage Commands::help=AuthProfmgrExecattr
Write.html
solaris.admin.usermgr.pswd:::Change Password::help=AuthUserMgrPswd.html
solaris.login.:::Login Control::help=LoginHeader.html
solaris.snmp.write:::Set SNMP Information::help=AuthSnmpWrite.html
solaris.admin.printer.read:::View Printer Information::help=AuthPrinterRead.
html
solaris.profmgr.assign:::Assign All Rights::help=AuthProfmgrAssign.html
solaris.snmp.read:::Get SNMP Information::help=AuthSnmpRead.html
solaris.admin.diskmgr.read:::View Disks::help=AuthDiskmgrRead.html

Значения полей в этом файле таковы:

name:res1:res2:short_desc:long_desc:attr

name – обязательное поле, имя набора прав (полномочия). Это уникальное имя, которое получается из комбинации префикса и суффикса, где префикс – это часть имени до самой правой точки.

Префикс наборов прав, придуманных компанией Sun, всегда начинается со слова solaris. Все остальные разработчики должны ради соблюдения уникальности имени указывать в качестве начала префикса имя своего домена в Интернете в обратном порядке (например, com.intel.) После имени компании идет дополнительная часть префикса, содержание которой зависит от смысла набора прав. Компоненты дополнительной части разделяются символом "точка"( .)

Суффикс – это слово, определяющее детальный смысл авторизации. Слово grant предполагает право собладающего этой авторизацией пользователя делегировать свои наборы прав (авторизации) другим.

Команды

Файл /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.
  • тype – тип объекта, определенного в данной записи; единственное допустимое значение этого поля в настоящее время – cmd.
  • id – строка, которая является уникальным идентификатором объекта, описанного в данной записи; для типа cmd этот идентификатор, кроме того, является полным именем файла выполняемой программы или символом звездочка ( * ), который разрешает запустить любую команду. Можно указывать звездочку в конце полного имени файла, что будет означать любую программу в соответствующем каталоге.
  • аttr – атрибуты вида имя=значение, разделенные точкой с запятой; допустимые варианты атрибутоов: euid, uid, egid, and gid.

Все компоненты RBAC могут быть использованы как в виде файлов, так и в виде карт NIS или таблиц NIS+. Соответственно, в файле /etc/nsswitch.conf понадобится указать порядок обращения к различным источникам.

Итак, схема назначений прав в системе ролей следующая: определенные программы могут быть запущены не только пользователем root, что традиционно, но и другими пользователями. Для этого существуют полномочия ( authorizations ), которые могут быть даны напрямую пользователям (что нежелательно с организационной точки зрения) или профилям прав. Профиль прав, представляющий собой набор определенных прав, назначается роли. Пользователь может претендовать на то, что он будет играть ту или иную роль, если он знает пароль этой роли и может "перевоплотиться" в нее с помощью команды su. Рис. 9.1 иллюстрирует взаимоотношения компонент RBAC между собой.

Отношения между компонентами RBAC

Рис. 9.1. Отношения между компонентами RBAC
< Лекция 8 || Лекция 9: 123 || Лекция 10 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.

Александр Гордеев
Александр Гордеев
Казахстан, Алматы, ТУРАН
Александр Даниленко
Александр Даниленко
Россия, Москва, 797, 1993