JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 11.1 管理:安全服务     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

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

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

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

4.  病毒扫描服务(任务)

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

6.  使用 BART 验证文件完整性(任务)

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

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

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

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

使用 RBAC(任务)

查看和使用 RBAC 缺省值(任务)

查看和使用 RBAC 缺省值(任务列表)

如何查看所有已定义的安全属性

如何查看指定的权限

如何承担角色

如何更改用户的安全属性

如何使用指定给您的管理权限

为站点定制 RBAC(任务)

初次配置 RBAC(任务列表)

如何规划 RBAC 实现

如何创建角色

如何指定角色

如何审计角色

如何创建权限配置文件

如何克隆和修改系统权限配置文件

如何创建授权

如何为传统应用程序添加 RBAC 属性

如何排除 RBAC 和特权指定故障

管理 RBAC(任务)

管理 RBAC(任务列表)

如何更改角色的口令

如何更改角色的安全属性

如何重新排序指定的安全属性

如何将管理员限于显式指定的权限

如何让用户使用自己的口令承担角色

如何将 root 角色更改为用户

使用特权(任务)

如何列出系统上的特权

如何确定已直接指定给您的特权

如何确定您可以运行的特权命令

如何确定进程的特权

如何确定程序所需的特权

如何将扩展的特权策略应用于端口

如何运行具有特权命令的 Shell 脚本

10.  Oracle Solaris 中的安全属性(参考信息)

第 4 部分加密服务

11.  加密框架(概述)

12.  加密框架(任务)

13.  密钥管理框架

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

14.  使用可插拔验证模块

15.  使用 安全 Shell

16.  安全 Shell(参考信息)

17.  使用简单验证和安全层

18.  网络服务验证(任务)

第 6 部分Kerberos 服务

19.  Kerberos 服务介绍

20.  规划 Kerberos 服务

21.  配置 Kerberos 服务(任务)

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

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

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

25.  Kerberos 服务(参考信息)

第 7 部分在 Oracle Solaris 中审计

26.  审计(概述)

27.  规划审计

28.  管理审计(任务)

29.  审计(参考信息)

词汇表

索引

管理 RBAC(任务)

在已配置并使用 RBAC 后,请使用以下过程维护并修改系统上的 RBAC。

管理 RBAC(任务列表)

以下任务列表列出了有关在初步实现基于角色的访问控制 (role-based access control, RBAC) 后维护 RBAC 的过程。

任务
说明
参考
更改角色口令。
root 角色可更改角色的口令。
修改角色的指定权限。
修改角色的安全属性。
修改权限配置文件。
修改权限配置文件中的安全属性值,例如限制特权和缺省特权。
重新排序权限配置文件指定。
确保指定的安全属性可供用户或角色使用。
创建受限制的配置文件 shell。
防止用户或角色完全访问软件中的所有命令。
限制用户的特权。
限制用户的基本或限制特权集。
从系统中删除缺省权限。
创建一个系统供在特殊时候使用。
允许用户提供相应的用户口令,以承担角色。
修改用户的安全属性,以便该用户的口令能够使该用户通过角色的验证。此行为与 Linux 角色行为类似。
root 角色更改为用户。
在淘汰系统之前,将 root 角色更改为用户。
限制桌面上的用户操作。
虽然这些操作不需要 RBAC,但它们增加了您的系统的安全性。

以上这些过程管理用户、角色以及权限配置文件的安全属性。有关基本的用户管理过程,请参阅《在 Oracle Solaris 11.1 中管理用户帐户和用户环境》中的第 1  章 "管理用户帐户和用户环境(概述)"

如何更改角色的口令

因为一个角色可能会被指定给许多用户,所以承担角色的用户无法更改角色的口令。

开始之前

您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

示例 9-24 更改角色的口令

在以下示例中,root 角色将更改本地 devmgt 角色的口令。

# passwd -r files  devmgt
New password: Type new password
Confirm password: Retype new password

在以下示例中,root 角色将更改 LDAP 目录服务中 devmgt 角色的口令。

# passwd -r ldap devmgt
New password: Type new password
Confirm password: Retype new password

在以下示例中,root 角色将更改文件和 LDAP 中 devmgt 角色的口令。

# passwd devmgt
New password: Type new password
Confirm password: Retype new password

如何更改角色的安全属性

开始之前

您必须是指定有 User Security(用户安全)权限配置文件的管理员,才能够更改角色的大多数安全属性。要指定审计标志或更改角色的口令,必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

  1. 使用 rolemod 命令。

    此命令可修改在本地命名服务或 LDAP 中定义的角色的属性。-A-P-R 选项的值可以通过 -+ 进行修改。- 号表示从当前指定的值中减去该值。+ 号表示将该值加到当前指定的值。

    有关 rolemod 命令的更多信息,请参见以下内容:

    • 如果要简单了解,请参见如何创建角色中有关 roleadd 命令的介绍。

    • 有关此命令的所有参数,请参见 rolemod(1M) 手册页。

    • 有关 -K 选项的关键值列表,请参见 user_attr(4) 手册页。

    以下命令将两个权限配置文件添加到 LDAP 系统信息库中的 devmgt 角色:

    $ rolemod  -P +"Device Management,File Management" -S ldap devadmin
  2. 要更改角色的口令,请参见如何更改角色的口令

示例 9-25 更改本地角色的安全属性

在以下示例中,管理员将修改 prtmgt 角色以包括 VSCAN Management(VSCAN 管理)权限配置文件。

$ rolemod -c "Handles printers and virus scanning" \
-P "Printer Management,VSCAN Management,All" prtmgt

示例 9-26 将特权直接指定给角色

在以下示例中,安全管理员会向 systime 角色授予一个非常特定的特权,该特权可以影响系统时间。

$ rolemod -K defaultpriv='proc_clock_highres' systime

defaultpriv 关键字的值始终都位于角色进程的特权列表中。

如何重新排序指定的安全属性

Oracle Solaris 按指定时的顺序读取权限配置文件,如搜索指定安全属性的顺序中所述。在此过程中,您将重新排序权限配置文件。

开始之前

您必须是指定有 User Security(用户安全)权限配置文件的管理员。有关更多信息,请参见如何使用指定给您的管理权限

  1. 查看当前指定给用户或角色的权限配置文件的列表。

    该列表将按顺序显示。

    $ profiles username|rolename
  2. 按正确的顺序指定权限配置文件。
    $ usermod | rolemod -P "list-of-profiles"

示例 9-27 按特定的顺序指定权限配置文件

在此示例中,管理员决定将包含特权命令的权限配置文件列出在角色 devadmin 的所有权限配置文件之后。

$ profiles devadmin
    Basic Solaris User
    All
    Device Management

因此,devadmin 角色无法使用为其指定的特权运行设备管理命令。

管理员重新为 devadmin 指定权限配置文件。在新的指定顺序中,devadmin 可以使用为其指定的特权运行设备管理命令。

$ rolemod -P "Device Management,Basic Solaris User,All"
$ profiles devadmin
    Device Management
    Basic Solaris User
    All

如何将管理员限于显式指定的权限

您可以通过下列两种方式限制角色或用户,使其执行有限数量的管理操作。

开始之前

您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

示例 9-28 修改系统以使权限仅对其用户可用

在以下示例中,管理员将创建一个仅可以用来管理网络的系统。管理员将从 policy.conf 文件中删除 Basic Solaris User(基本 Solaris 用户)权限配置文件和任何授权。不删除 Console User(控制台用户)权限配置文件。在生成的 policy.conf 文件中,受影响的行如下所示:

...
#AUTHS_GRANTED=
#PROFS_GRANTED=Basic Solaris User
CONSOLE_USER=Console User
...

只有显式为其指定了授权、命令或权限配置文件的用户才能使用该系统。登录后,已授权的用户可以执行管理任务。如果授权的用户位于该系统控制台上,则该用户将拥有 "Console User"(控制台用户)权限。

如何让用户使用自己的口令承担角色

缺省情况下,用户只有键入角色的口令才能承担角色。执行以下过程可使在 Oracle Solaris 中承担角色的过程与在 Linux 环境中承担角色的过程相似。

开始之前

您承担包括 User Security(用户安全)权限配置文件的角色。该角色不得是要更改其 roleauth 值的角色。

示例 9-29 使用权限配置文件时允许角色使用指定的用户的口令

在以下示例中,root 角色可在本地系统上更改角色 secadminroleauth 值。

$ profiles -p "Local System Administrator"
profiles:Local System Administrator> set roleauth="user"
profiles:Local System Administrator> end
profiles:Local System Administrator> exit

当指定了 Security Administrator(安全管理员)权限配置文件的用户要承担该角色时,系统将提示用户需要输入口令。在以下序列中,角色名称为 secadmin

% su - secadmin
Password: Type user password
$ /** You are now in a profile shell with administrative rights**/

如果已为用户指定了其他角色,则用户也将使用自己的口令对这些角色进行验证。

示例 9-30 更改 LDAP 系统信息库中角色的 roleauth

在以下示例中,root 角色允许可以承担角色 secadmin 的所有用户在承担角色时使用自己的口令。对于由 LDAP 服务器管理的所有系统上的这些用户,都授予了该功能。

# rolemod -S ldap -K roleauth=user secadmin

故障排除

如果已对角色设置 roleauth=user,则通过用户口令,验证的角色可以访问指定给该角色的所有权限。此关键字是搜索相关关键字。有关更多信息,请参见搜索指定安全属性的顺序

如何将 root 角色更改为用户

当管理员淘汰已从网络中删除的系统时,可能会将 root 更改为用户。在该实例中,以 root 身份登录系统可简化清除过程。

开始之前

您必须成为 root。有关更多信息,请参见如何使用指定给您的管理权限

  1. 从本地用户中删除 root 角色指定。

    例如,从两个用户中删除角色指定。

    % su - root
    Password: a!2@3#4$5%6^7
    # roles jdoe
    root
    # roles kdoe
    root
    # roles ldoe
    secadmin
    # usermod -R "" jdoe
    # usermod -R "" kdoe
    #
  2. root 角色更改为用户。
    # rolemod -K type=normal root

    当前承担 root 角色的用户保持不变,而具有 root 访问权限的其他用户可以使用 su 命令成为 root 或以 root 用户身份登录系统。

  3. 验证更改。

    您可以使用以下命令之一。

    # getent user_attr root
    root::::auths=solaris.*;profiles=All;audit_flags=lo\:no;lock_after_retries=no;
    min_label=admin_low;clearance=admin_high

    如果输出中缺少 type 关键字或此关键字等于 normal,则此帐户不是一个角色。

    # userattr type root

    如果输出为空或列出了 normal,则此帐户不是一个角色。

示例 9-31 防止 root 角色被用于配置系统

在以下示例中,站点安全策略要求应防止 root 帐户维护系统。管理员已创建和测试维护系统的角色。这些角色包括每个安全配置文件和 System Administrator(系统管理员)权限配置文件。已为一位可信用户指定了可以恢复备份的角色。没有任何角色可以更改系统、用户或权限配置文件的审计标志。

为防止使用 root 帐户维护系统,安全管理员删除了 root 角色指定。由于 root 帐户必须能够以单用户模式登录到系统,所以该帐户保留了一个口令。

# usermod -K roles= jdoe
# userattr roles jdoe

示例 9-32 将 root 用户更改为 root 角色

在此示例中,root 用户将 root 用户恢复为角色。

首先,root 用户将 root 帐户更改为角色并验证此更改。

# usermod -K type=role root
# getent user_attr root
root::::type=role;auths=solaris.*;profiles=All;audit_flags=lo\:no;
lock_after_retries=no;min_label=admin_low;clearance=admin_high

然后,rootroot 角色指定给一个本地用户。

# usermod -R root jdoe

故障排除

在桌面环境中,如果 root 是一个角色,则您不得以 root 身份直接登录。一条诊断消息会指出 root 在您的系统中为角色。

如果您没有可以承担 root 角色的本地帐户,请创建一个。在单用户模式下以 root 身份登录到系统,创建一个本地用户帐户和口令,并将 root 角色指定给该新帐户。然后,以新用户的身份登录并承担 root 角色。