JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:安全性服务     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

第 2 部分系统、文件和设备安全性

2.  管理计算机安全性(概述)

3.  控制对系统的访问(任务)

4.  控制对设备的访问(任务)

5.  使用基本审计报告工具(任务)

6.  控制对文件的访问(任务)

7.  使用自动安全性增强工具(任务)

第 3 部分角色、权限配置文件和特权

8.  使用角色和特权(概述)

9.  使用基于角色的访问控制(任务)

10.  基于角色的访问控制(参考)

权限配置文件的内容

Primary Administrator(主管理员)权限配置文件

System Administrator(系统管理员)权限配置文件

Operator(操作员)权限配置文件

Printer Management(打印机管理)权限配置文件

Basic Solaris User(基本 Solaris 用户)权限配置文件

All(所有)权限配置文件

权限配置文件的顺序

查看权限配置文件的内容

授权命名和委托

授权命名约定

授权粒度示例

授权中的委托授权

支持 RBAC 的数据库

RBAC 数据库关系

RBAC 数据库和命名服务

user_attr 数据库

auth_attr 数据库

prof_attr 数据库

exec_attr 数据库

policy.conf 文件

RBAC 命令

管理 RBAC 的命令

要求授权的命令

11.  特权(任务)

12.  特权(参考)

第 4 部分加密服务

13.  Oracle Solaris 加密框架(概述)

14.  Oracle Solaris 加密框架(任务)

15.  Oracle Solaris 密钥管理框架

第 5 部分验证服务和安全通信

16.  使用验证服务(任务)

17.  使用 PAM

18.  使用 SASL

19.  使用 Oracle Solaris 安全 Shell(任务)

20.  Oracle Solaris 安全 Shell(参考)

第 6 部分Kerberos 服务

21.  Kerberos 服务介绍

22.  规划 Kerberos 服务

23.  配置 Kerberos 服务(任务)

24.  Kerberos 错误消息和故障排除

25.  管理 Kerberos 主体和策略(任务)

26.  使用 Kerberos 应用程序(任务)

27.  Kerberos 服务(参考)

第 7 部分Oracle Solaris 审计

28.  Oracle Solaris 审计(概述)

29.  规划 Oracle Solaris 审计

30.  管理 Oracle Solaris 审计(任务)

31.  Oracle Solaris 审计(参考)

词汇表

索引

支持 RBAC 的数据库

以下四个数据库存储 RBAC 元素的数据:

policy.conf 数据库包含应用于所有用户的授权、特权和权限配置文件。有关更多信息,请参见policy.conf 文件

RBAC 数据库关系

每个 RBAC 数据库都使用 key=value 语法存储属性。此方法可以适应将来的数据库扩展。此外,通过使用此方法,系统可以在遇到其策略未知的关键字时继续运行。key=value 内容将文件链接起来。四个数据库中的以下链接项说明了 RBAC 数据库协同工作的方式。

示例 10-1 显示 RBAC 数据库连接

在以下示例中,通过为用户 jdoe 指定角色 filemgr,使此用户获取 File System Management(文件系统管理)权限配置文件的功能。

  1. user_attr 数据库的 jdoe 用户项中为用户 jdoe 指定角色 filemgr

    # user_attr - user definition
    jdoe::::type=normal;roles=filemgr
  2. user_attr 数据库的角色项中为角色 filemgr 指定权限配置文件 File System Management(文件系统管理)。

    # user_attr - role definition
    filemgr::::profiles=File System Management;type=role

    用户和角色在本地系统上的 passwdshadow 文件中(或者在分布式命名服务的等效数据库中)唯一定义。

  3. File System Management(文件系统管理)权限配置文件在 prof_attr 数据库中定义。此数据库还为 File System Management(文件系统管理)项指定了三组授权。

    # prof_attr - rights profile definitions and assigned authorizations
    File System Management:::Manage, mount, share file systems:
    help=RtFileSysMngmnt.html;
    auths=solaris.admin.fsmgr.*,solaris.admin.diskmgr.*,solaris.admin.volmgr.*
  4. 这些授权在 auth_attr 数据库中定义。

    # auth_attr - authorization definitions
    solaris.admin.fsmgr.:::Mounts and Shares::help=AuthFsmgrHeader.html
    solaris.admin.fsmgr.read:::View Mounts and Shares::help=AuthFsmgrRead.html
    solaris.admin.fsmgr.write:::Mount and Share Files::help=AuthFsmgrWrite.html
  5. exec_attr 数据库中为 File System Management(文件系统管理)权限配置文件指定带有安全属性的命令。

    # exec_attr - rights profile names with secured commands
    File System Management:suser:cmd:::/usr/sbin/mount:uid=0
    File System Management:suser:cmd:::/usr/sbin/dfshares:euid=0
    …
    File System Management:solaris:cmd:::/usr/sbin/mount:privs=sys_mount
    …

RBAC 数据库和命名服务

RBAC 数据库的名称服务范围只能应用于本地主机。此范围还可以包括由 NIS、NIS+ 或 LDAP 之类的命名服务提供服务的所有主机。在 /etc/nsswitch.conf 文件中为每个数据库设置具有优先级的命名服务。

user_attr 数据库

user_attr 数据库包含补充 passwdshadow 数据库的用户和角色信息。user_attr 数据库包含授权、权限配置文件、特权和指定角色之类的扩展用户属性。user_attr 数据库中的字段以冒号分隔,如下所示:

user:qualifier:res1:res2:attr

这些字段具有以下含义:

user

passwd 数据库中指定的用户或角色的名称。

qualifier:res1:res2

保留这些字段供将来使用。

attr

以分号 (;) 分隔的关键字-值对的可选列表,用于说明将在用户运行命令时应用的安全属性。四个有效关键字为 typeauthsprofilesroles

  • 如果此帐户属于普通用户,则可以将 type 关键字设置为 normal。如果此帐户属于角色,则 typerole

  • auths 关键字指定从 auth_attr 数据库中定义的名称中选择的以逗号分隔的授权名称列表。授权名称可以包括星号 (*) 字符作为通配符。例如,solaris.device.* 表示所有 Oracle Solaris 设备授权。

  • profiles 关键字指定 prof_attr 数据库中排序的逗号分隔权限配置文件名称列表。权限配置文件的排序方式与 UNIX 搜索路径的排序方式类似。列表中包含要执行的命令的第一个配置文件定义将应用于命令的安全属性(如果存在)。

  • roles 关键字指定以逗号分隔的角色名称列表。请注意,角色是在同一个 user_attr 数据库中定义的。通过将类型值设置为 role 来表示角色。不能将角色指定给其他角色。

以下示例演示了如何在典型的 user_attr 数据库中定义 Operator(操作员)角色。此示例显示了如何将角色指定给用户 jdoe。通过 type 关键字区分角色和用户。

% grep operator /etc/user_attr 
jdoe::::type=normal;roles=operator
operator::::profiles=Operator;type=role

auth_attr 数据库

所有授权都存储在 auth_attr 数据库中。可以将授权指定给用户、角色或权限配置文件。首选方法是将授权放置在权限配置文件中,将配置文件包括在角色的配置文件列表中,然后将角色指定给用户。

auth_attr 数据库中的字段以冒号分隔,如下所示:

authname:res1:res2:short_desc:long_desc:attr

这些字段具有以下含义:

authname

用于以 prefix.[suffix] 格式标识授权的唯一字符串。Oracle Solaris 的授权使用 solaris 作为前缀。所有其他授权应使用与创建授权的组织的 Internet 域名顺序相反的名称开头的前缀(例如,com.xyzcompany)。后缀指示要授权的内容,通常是功能区域和操作。

authname 由前缀和功能区域组成并以句点结尾时,authname 将用作应用程序 GUI 中使用的标题。由两部分组成的 authname 不是实际授权。例如,authname 的值 solaris.printmgr. 便是一个标题。

authname 以单词 "grant" 结尾时,authname 将用作授予授权。使用授予授权,用户可以将具有相同前缀和功能区域的授权委托给其他用户。例如,authname 的值 solaris.printmgr.grant 便是一个授予授权。solaris.printmgr.grant 可授予用户将 solaris.printmgr.adminsolaris.printmgr.nobanner 之类的授权委托给其他用户的权限。

res1:res2

保留以供将来使用。

short_desc

授权的短名称。此短名称适于在用户界面中(如 GUI 中的滚动列表中)显示。

long_desc

详细说明。此字段标识授权的目的、使用授权的应用程序以及可能使用授权的用户类型。可以在应用程序的帮助文本中显示详细说明。

attr

以分号 (;) 分隔的关键字-值对的可选列表,用于说明授权属性。可以指定零个或更多关键字。

关键字 help 标识 HTML 形式的帮助文件。可以通过 /usr/lib/help/auths/locale/C 目录下的 index.html 文件访问帮助文件。

以下示例显示了一个包含一些典型值的 auth_attr 数据库:

% grep printer /etc/security/auth_attr 
solaris.admin.printer.:::Printer Information::help=AuthPrinterHeader.html
solaris.admin.printer.delete:::Delete Printer Information::help=AuthPrinterDelete.html
solaris.admin.printer.modify:::Update Printer Information::help=AuthPrinterModify.html
solaris.admin.printer.read:::View Printer Information::help=AuthPrinterRead.html

请注意,solaris.admin.printer. 被定义为标题,这是因为授权名称以点 (.) 结尾。GUI 使用标题组织授权系列。

prof_attr 数据库

prof_attr 数据库存储指定给权限配置文件的名称、说明、帮助文件位置、特权以及授权。指定给权限配置文件的命令和安全属性存储在 exec_attr 数据库中。有关更多信息,请参见 exec_attr 数据库prof_attr 数据库中的字段以冒号分隔,如下所示:

profname:res1:res2:desc:attr

这些字段具有以下含义:

profname

权限配置文件的名称。权限配置文件名称区分大小写。user_attr 数据库也使用此名称指示指定给角色和用户的配置文件。

res1:res2

保留以供将来使用。

desc

详细说明。此字段应介绍权限配置文件的目的,包括有兴趣使用此配置文件的用户类型。详细说明适于在应用程序的帮助文本中显示。

attr

以分号 (;) 分隔的关键字-值对的可选列表,用于说明在执行时应用于对象的安全属性。可以指定零个或更多关键字。有效的关键字为 helpprofilesauths

关键字 help 标识 HTML 形式的帮助文件。可以通过 /usr/lib/help/profiles/locale/C 目录下的 index.html 文件访问帮助文件。

关键字 profiles 指定以逗号分隔的权限配置文件列表。这些配置文件称为补充权限配置文件

关键字 auths 指定以逗号分隔的授权名称列表,这些名称选自 auth_attr 数据库中定义的那些名称。可以使用星号 (*) 字符作为通配符来指定授权名称。

关键字 privs 指定以逗号分隔的特权列表。这些特权对配置文件 shell 中的所有命令有效。

以下示例显示了两个典型的 prof_attr 数据库项。请注意,Printer Management(打印机管理)权限配置文件是 Operator(操作员)权限配置文件的补充权限配置文件。根据显示的需要,此示例进行了换行。

% grep 'Printer Management' /etc/security/prof_attr
Printer Management:::         Name of rights profile
Manage printers, daemons, spooling: Description
help=RtPrntAdmin.html;              Help file
auths=solaris.admin.printer.read, Authorizations
solaris.admin.printer.modify,solaris.admin.printer.delete
...
Operator:::                         Name of rights profile
Can perform simple administrative tasks: Description
profiles=Printer Management,  Supplementary rights profiles
Media Backup,All;
help=RtOperator.html               Help file

exec_attr 数据库

exec_attr 数据库定义需要安全属性才能成功运行的命令。这些命令是权限配置文件的一部分。具有安全属性的命令可以由为其指定了此配置文件的角色或用户运行。

exec_attr 数据库中的字段以冒号分隔,如下所示:

name:policy:type:res1:res2:id:attr

这些字段具有以下含义。

profname

权限配置文件的名称。权限配置文件名称区分大小写。该名称指的是 prof_attr 数据库中的配置文件。

policy

与此项相关联的安全策略。目前,susersolaris 是有效项。solaris 策略可识别特权,而 suser 策略则不能。

type

指定的实体类型。目前,唯一有效的实体类型是 cmd(命令)。

res1:res2

保留以供将来使用。

id

标识实体的字符串。命令应该具有全路径或带有通配符 (*) 的路径。要指定参数,请编写具有这些参数的脚本并使 id 指向此脚本。

attr

以分号 (;) 分隔的关键字-值对的可选列表,用于说明将在执行时应用于实体的安全属性。可以指定零个或更多关键字。有效关键字的列表取决于强制执行的策略。

对于 suser 策略,四个有效关键字为 euiduidegidgid

  • euiduid 关键字包含单个用户名或数字用户 ID (user ID, UID)。通过 euid 指定的命令使用提供的 UID 运行,这与在可执行文件上设置 setuid 位类似。通过 uid 指定的命令使用实际 UID 和有效 UID 运行。

  • egidgid 关键字包含单个组名或数字组 ID (group ID, GID)。通过 egid 指定的命令使用提供的 GID 运行,这与在可执行文件上设置 setgid 位类似。通过 gid 指定的命令使用实际 GID 和有效 GID 运行。

对于 solaris 策略,有效关键字为 privs。值由以逗号分隔的特权列表组成。

以下示例显示了 exec_attr 数据库中的一些典型值:

% grep 'File System Management' /etc/security/exec_attr
File System Management:suser:cmd:::/usr/sbin/ff:euid=0
File System Management:solaris:cmd:::/usr/sbin/mount:privs=sys_mount
…

policy.conf 文件

policy.conf 文件提供了向所有用户授予特定权限配置文件、特定授权和特定特权的方法。文件中的相关项由 key=value 对组成:

以下示例显示了 policy.conf 数据库中的一些典型值:

# grep AUTHS /etc/security/policy
AUTHS_GRANTED=solaris.device.cdrw

# grep PROFS /etc/security/policy
PROFS_GRANTED=Basic Solaris User

# grep PRIV /etc/security/policy

#PRIV_DEFAULT=basic
#PRIV_LIMIT=all

有关特权的更多信息,请参见特权(概述)