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 缺省值(任务)

在缺省情况下,将为用户指定权限。系统所有用户的权限均在 /etc/security/policy.conf 文件中指定。

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

安装 Oracle Solaris 时,您的系统已配置了用户权限和进程权限。在未进行进一步配置的情况下,可使用以下任务列表查看和使用 RBAC。

任务
说明
参考
查看安全属性数据库的内容。
列出系统上的所有授权、权限配置文件以及具有安全属性的命令。
查看权限。
包括列出权限配置文件、授权、特权以及指定的角色。
承担 root 角色。
初始用户获取管理权限。
修改用户的权限。
为一般用户添加安全属性,或删除这些安全属性。
成为管理员。
有多种方法可供已为其指定了管理权限的用户来使用这些权限。

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

使用以下命令可列出系统上的所有授权、权限配置文件以及具有安全属性的命令。要列出所有已定义的特权,请参见如何列出系统上的特权

  1. 列出所有授权。
    • 列出命名服务中所有授权的名称。
      % auths info
          solaris.account.activate
          solaris.account.setpolicy
          solaris.admin.edit
      ...
          solaris.zone.login
          solaris.zone.manage
    • 列出每个权限配置文件的授权名称。
      % getent auth_attr | more
      solaris.:::All Solaris Authorizations::help=AllSolAuthsHeader.html
      solaris.account.:::Account Management::help=AccountHeader.html
      ...
      solaris.zone.login:::Zone Login::help=ZoneLogin.html
      solaris.zone.manage:::Zone Deployment::help=ZoneManage.html
  2. 列出所有权限配置文件。
    • 列出命名服务中所有权限配置文件的名称。
      % profiles -a
              Console User
              CUPS Administration
              Desktop Removable Media User
      ...
              VSCAN Management
              WUSB Management
    • 列出所有权限配置文件的完整定义。
      % getent prof_attr | more
      All:::Execute any command as the user or role:help=RtAll.html
      Audit Configuration:::Configure Solaris Audit:auths=solaris.smf.value.audit;
      help=RtAuditCfg.html
      ...
      Zone Management:::Zones Virtual Application Environment Administration:
      help=RtZoneMngmnt.html
      Zone Security:::Zones Virtual Application Environment Security:auths=solaris.zone.*,
      solaris.auth.delegate;help=RtZoneSecurity.html ...
  3. 列出所有具有安全属性的命令。
    % getent exec_attr | more
    All:solaris:cmd:::*:
    Audit Configuration:solaris:cmd:::/usr/sbin/auditconfig:privs=sys_audit
    ...
    Zone Security:solaris:cmd:::/usr/sbin/txzonemgr:uid=0
    Zone Security:solaris:cmd:::/usr/sbin/zonecfg:uid=0 ...

如何查看指定的权限

使用以下命令可查看 RBAC 指定。要查看可以指定的所有权限,请参见如何查看所有已定义的安全属性

  1. 列出权限配置文件。
    % profiles
    Basic Solaris User
    All

    上面的权限配置文件在缺省情况下会指定给所有用户。如果您是初始用户,您将具有较长的列表。

    % profiles Initial user
    System Administrator
    Audit Review
    ...
    CPU Power Management
    Basic Solaris User
    All
  2. 列出授权。
    % auths
    solaris.device.cdrw,solaris.device.mount.removable,solaris.mail.mailq
    solaris.network.autoconf.read,solaris.admin.wusb.read
    solaris.smf.manage.vbiosd,solaris.smf.value.vbiosd

    这些授权包含在缺省情况下指定给所有用户的权限配置文件中。

  3. 列出指定的角色。
    % roles
    root

    该角色在缺省情况下会指定给初始用户。No roles 表明没有为您指定任何角色。

  4. 列出缺省 shell 中的特权。
    % ppriv $$
    1234:    /bin/csh
    flags = <none>
        E: basic
        I: basic
        P: basic
        L: all

    缺省情况下,将为每个用户指定基本的特权集。缺省限制特权集为所有特权。

    % ppriv -vl basic
    file_link_any
            Allows a process to create hardlinks to files owned by a uid
            different from the process' effective uid.
    file_read
            Allows a process to read objects in the filesystem.
    file_write
            Allows a process to modify objects in the filesystem.
    net_access
            Allows a process to open a TCP, UDP, SDP or SCTP network endpoint.
    proc_exec
            Allows a process to call execve().
    proc_fork
            Allows a process to call fork1()/forkall()/vfork()
    proc_info
            Allows a process to examine the status of processes other
            than those it can send signals to.  Processes which cannot
            be examined cannot be seen in /proc and appear not to exist.
    proc_session
            Allows a process to send signals or trace processes outside its session.
  5. 列出权限配置文件中各命令的特权。
    % profiles -l
      Basic Solaris User
    ...
       /usr/bin/cdrecord.bin   privs=file_dac_read,sys_devices,
         proc_lock_memory,proc_priocntl,net_privaddr
       /usr/bin/readcd.bin     privs=file_dac_read,sys_devices,net_privaddr
       /usr/bin/cdda2wav.bin   privs=file_dac_read,sys_devices,
         proc_priocntl,net_privaddr
      All
       * 

    用户的权限配置文件可以包括使用特定特权运行的命令。基本 Solaris 用户配置文件包括允许用户读取和写入 CD-ROM 的命令。

示例 9-1 列出用户的授权

% auths username
solaris.device.cdrw,solaris.device.mount.removable,solaris.mail.mailq

示例 9-2 列出用户或角色的权限配置文件

以下命令列出了特定用户的权限配置文件。

% profiles jdoe
jdoe: 
          Basic Solaris User
          All

以下命令列出了 cryptomgt 角色的权限配置文件。

% profiles cryptomgt
cryptomgt:
          Crypto Management
          Basic Solaris User
          All

以下命令列出了 root 角色的权限配置文件。

% profiles root
root:
          All
          Console User
          Network Wifi Info
          Desktop Removable Media User
          Suspend To RAM
          Suspend To Disk
          Brightness
          CPU Power Management
          Network Autoconf User
          Basic Solaris User

示例 9-3 列出用户的指定角色

以下命令列出了特定用户的指定角色。

% roles jdoe
root

示例 9-4 列出特定命令的用户特权

以下命令列出了一般用户的权限配置文件中的特权命令。

% profiles -l jdoe
jdoe: 
  Basic Solaris User
...
   /usr/bin/cdda2wav.bin   privs=file_dac_read,sys_devices,
     proc_priocntl,net_privaddr
   /usr/bin/cdrecord.bin   privs=file_dac_read,sys_devices,
     proc_lock_memory,proc_priocntl,net_privaddr
   /usr/bin/readcd.bin     privs=file_dac_read,sys_devices,net_privaddr
...

如何承担角色

开始之前

必须已为您指定了角色,缺省情况下,仅存在 root 角色。

  1. 在终端窗口中,确定可以承担的角色。
    % roles
    Comma-separated list of role names is displayed
  2. 使用 su 命令承担角色。
    % su - rolename
    Password: <Type rolename password>
    $

    su - rolename 命令会将 shell 更改为该角色的配置文件 shell。配置文件 shell 可识别安全属性(例如授权、特权和 set ID 位)。

  3. 可选验证您现在是否已承担某种角色。
    $ /usr/bin/whoami
    rolename

    您现在可在此终端窗口中执行角色任务。

  4. 可选查看角色的功能。

    有关样例输出,请参见如何查看指定的权限

    $ profiles -l
    verbose rights profiles output
    $ auths
    authorizations output

示例 9-5 承担 root 角色

在以下示例中,初始用户承担 root 角色并列出该角色的 shell 中的特权。

% roles
root
% su - root
Password: <Type root password>
# Prompt changes to root prompt
# ppriv $$
1200:   pfksh
flags = <none>
        E: all
        I: basic
        P: all
        L: all

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

如何更改用户的安全属性

用户属性包括登录 shell、权限配置文件和角色。为用户提供管理权能的最安全方法是将角色指定给用户。有关讨论,请参见直接指定安全属性时的安全注意事项

开始之前

在缺省配置中,您必须承担 root 角色才能修改用户的安全属性。

为您的站点配置 RBAC 后,您将具有其他选择。要更改用户的大多数安全属性(包括口令),您必须是指定有 User Security(用户安全)权限配置文件的管理员。要指定审计标志或更改角色的口令,必须承担 root 角色。要更改其他用户属性,您必须是指定有 User Management(用户管理)权限配置文件的管理员。有关更多信息,请参见如何使用指定给您的管理权限

示例 9-6 创建可以管理 DHCP 的用户

在本示例中,安全管理员将在 LDAP 中创建一个用户。登录时,jdoe-dhcp 用户能够管理 DHCP。

# useradd -P "DHCP Management" -s /usr/bin/pfbash -S ldap  jdoe-dhcp

由于已为用户指定了 pfbash 作为登录 shell,因此 DHCP Management(DHCP 管理)权限配置文件中的安全属性对用户缺省 shell 中的用户可用。

示例 9-7 将授权直接指定给用户

在本示例中,安全管理员将创建一个可以控制屏幕亮度的本地用户。

# useradd -c "Screened JDoe, local" -s /usr/bin/pfbash \
-A solaris.system.power.brightness  jdoe-scr

该授权将添加到用户的现有授权指定中。

示例 9-8 从用户的限制特权集中删除特权

在以下示例中,防止所有源自 jdoe 初始登录的会话使用 sys_linkdir 特权。也就是说,即使在用户运行 su 命令之后,也不能生成指向目录的硬链接,并且也不能解除目录链接。

$ usermod -K 'limitpriv=all,!sys_linkdir' jdoe
$ userattr limitpriv jdoe
all,!sys_linkdir

示例 9-9 将特权直接指定给用户

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

$ usermod -K defaultpriv='basic,proc_clock_highres' jdoe

defaultpriv 关键字的值将替换现有的值。因此,对于要保留 basic 特权的用户,指定了值 basic。在缺省配置中,所有用户都拥有基本特权。有关基本特权的列表,请参见步骤 4

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

root 角色中,初始用户具有所有管理权限。

步骤 1 显示了如果您具有管理权限,您将如何管理系统。步骤 2 显示了非 root 帐户可以如何编辑系统文件。

开始之前

已为您指定了一般用户没有的权限。如果您不是 root 用户,则必须为您分配一个角色、管理权限配置文件或特定特权或授权。

  1. 选择以下方法之一来运行管理命令。

    打开终端窗口。

    • 成为 root
      % su -
      Password: Type the root password
      #

      注 - 无论 root 是用户还是角色,此方法都是可行的。井号 (#) 提示符表明您现在已是 root 用户。


    • 承担已为您指定的角色。

      在以下示例中,您承担了审计配置角色。此角色包括 "Audit Configuration"(审计配置)权限配置文件。

      % su - audadmin
      Password: Type the audadmin password
      $

      您过去在其中键入该命令的 shell 现在位于一个配置文件 shell 中。在该 shell 中,您可以运行 auditconfig 命令。有关配置文件 shell 的更多信息,请参见配置文件 Shell 和 RBAC


      提示 - 使用如何查看指定的权限中介绍的步骤查看角色的功能。


    • 以用户身份,使用 pfbash 命令创建一个以管理权限运行的 shell。

      例如,以下命令集允许您在 pfbash shell 中查看审计预选值和审计策略:

      % pfbash
      $ auditconfig -getflags
      active user default audit flags = ua,ap,lo(0x45000,0x45000)
      configured user default audit flags = ua,ap,lo(0x45000,0x45000)
      $ auditconfig -getpolicy
      configured audit policies = cnt
      active audit policies = cnt
    • 以用户身份,使用 pfexec 命令创建一个以管理权限运行的进程。

      结合使用权限配置文件的特权命令名称来运行 pfexec 命令。例如,以下命令允许您查看用户预选的审计标志:

      % pfexec auditconfig -getflags
      active user default audit flags = ua,ap,lo(0x45000,0x45000)
      configured user default audit flags = ua,ap,lo(0x45000,0x45000)

      应用于 pfexec 的特权限制与应用于 pfbash 的特权限制相同。但要运行其他特权命令,必须在键入该特权命令之前再次键入 pfexec

      % pfexec auditconfig -getpolicy
      configured audit policies = cnt
      active audit policies = cnt
    • 以用户身份,使用 sudo 命令创建一个以管理权限运行的进程。

      使用在 sudoers 文件中为您指定的管理命令的名称运行 sudo 命令。有关更多信息,请参见 sudo(1M) 和 sudoers(4) 手册页。

  2. 要编辑系统文件,请使用 pfedit 命令。

    如果您不是 UID 为 0root,则缺省情况下您无法编辑系统文件。不过,如果为您指定了 solaris.admin.edit/ path-to-system-file 授权,则您可以编辑 system-file。例如,如果为您指定了 solaris.admin.edit/etc/security/audit_warn 授权,则您可以编辑 audit_warn 文件。

    $ pfedit /etc/security/audit_warn

    该命令使用 $EDITOR 的值来确定文本编辑器。有关更多信息,请参见 pfedit(1M) 手册页。如果将审计配置为审计 AUE_PFEXEC 事件,则通过 root 角色运行 pfedit 命令比较有用。

示例 9-10 高速缓存验证以便于使用角色

在以下示例中,管理员会配置一个角色来管理审计配置,但为方便使用该角色,会高速缓存用户的验证。首先,管理员创建并指定角色。

# roleadd -K roleauth=user -P "Audit Configuration" audadmin
# usermod -R +audadmin jdoe

当切换到该角色时,如果 jdoe 使用 -c 选项,则在显示 auditconfig 输出之前需要输入口令。

% su - audadmin -c auditconfig option
Password:
auditconfig output

如果没有高速缓存验证,jdoe 将立即重新运行该命令,并出现输入口令提示。

管理员在 pam.d 目录中创建一个文件来存储用以实现验证高速缓存的 su 栈,以便只需要在初次运行时输入口令,以后不再需要输入口令,直到超过某段时间之后。

# pfedit /etc/pam.d/su
## Cache authentication for switched user
#
auth required           pam_unix_cred.so.1
auth sufficient         pam_tty_tickets.so.1
auth requisite          pam_authtok_get.so.1
auth required           pam_dhkeys.so.1
auth required           pam_unix_auth.so.1

创建文件之后,管理员将对这些项进行检查,确定是否出现拼写、缺失或重复问题。

管理员必须提供完整的上述 su 栈。pam_tty_tickets.so.1 模块实现高速缓存。有关 PAM 的更多信息,请参见 pam.conf(4) 手册页和第 14 章

在管理员添加 su PAM 文件并重新引导系统之后,对于所有角色(包括 audadmin 角色),当运行一系列命令时仅会提示他们输入一次口令。

% su - audadmin -c auditconfig option
Password:
auditconfig output
% su - audadmin -c auditconfig option
auditconfig output
...