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

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

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

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

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

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

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

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

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

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

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

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

使用 RBAC(任务)

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

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

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

如何查看指定的权限

如何承担角色

如何获取管理权限

为站点定制 RBAC(任务)

初次配置 RBAC(任务列表)

如何规划 RBAC 实现

如何创建角色

如何指定角色

如何审计角色

如何创建或更改权限配置文件

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

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

管理 RBAC(任务)

管理 RBAC(任务列表)

如何更改角色的口令

如何更改角色的安全属性

如何更改用户的 RBAC 属性

如何将用户限于桌面应用程序

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

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

如何将 root 角色更改为用户

使用特权(任务)

确定您的特权(任务列表)

如何列出系统上的特权

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

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

管理特权(任务列表)

如何确定进程的特权

如何确定程序所需的特权

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

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

第 4 部分加密服务

11.  加密框架(概述)

12.  加密框架(任务)

13.  密钥管理框架

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

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

15.  使用 PAM

16.  使用 SASL

17.  使用 安全 Shell(任务)

18.  安全 Shell(参考)

第 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. 列出所有授权。
    % 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. 列出所有权限配置文件。
    % 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. 列出授权。
    % auths
    solaris.device.cdrw,solaris.device.mount.removable,solaris.mail.mailq

    这些授权在缺省情况下会指定给所有用户。

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

    这些权限配置文件在缺省情况下会指定给所有用户。

  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/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
      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
  All
   * 

如何承担角色

开始之前

必须已为您指定了角色,并且必须使用该信息更新命名服务。

  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. 可选查看角色的功能。

    有关过程,请参见如何查看指定的权限

示例 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 时,管理权限将生效。在缺省情况下,将为角色帐户指定一个配置文件 shell。角色是特殊帐户,系统为其指定了特定的管理权限,这些权限通常针对相关的一组管理活动(例如查看审计文件)。

root 角色中,初始用户具有所有管理权限,即初始用户是超级用户。root 角色可以创建其他角色。

开始之前

要管理系统,您必须具有一般用户没有的权限。如果您不是超级用户,必须为您分配一个角色、管理权限配置文件或特定特权或授权。

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

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

# roleadd -K roleauth=user -P "Network Management" netmgt
# usermod -R +netmgt jdoe

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

% su - netmgt -c snoop options
Password:

snoop output

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

管理员配置 pam.conf 文件来高速缓存验证,以便只需要在初次运行时输入口令,以后不再需要输入口令,直到超过某段时间之后。管理员会将所有 pam.conf 定制堆栈放在文件的结尾处。

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

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

需要整个 su 堆栈。pam_tty_tickets.so.1 模块提供高速缓存。有关 PAM 的更多信息,请参见 pam.conf(4) 手册页以及第 15 章

su PAM 堆栈添加到 pam.conf 文件之后,对于 netmgt 角色,当运行一系列命令时仅提示一次输入口令。

% su - netmgt -c snoop options
Password:

snoop output
% su - netmgt -c snoop options
snoop output
...