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.  基于角色的访问控制(参考)

11.  特权(任务)

管理和使用特权(任务列表)

管理特权(任务列表)

管理特权

如何确定进程的特权

如何确定程序所需的特权

如何为命令添加特权

如何将特权指定给用户或角色

如何限制用户或角色的特权

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

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

确定已指定给您的特权

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

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

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

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 审计(参考)

词汇表

索引

确定已指定给您的特权

直接将特权指定给用户时,这些特权在每个 shell 中都有效。未直接将特权指定给用户时,用户必须打开一个配置文件 shell。例如,当具有指定特权的命令位于用户权限配置文件列表内的权限配置文件中时,用户必须在配置文件 shell 中执行此命令。

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

以下过程说明如何确定是否已直接为您指定了特权。


注意

注意 - 不当使用直接指定的特权可能导致无意中破坏安全性。有关讨论,请参见直接指定安全属性时的安全注意事项


  1. 列出您运行的进程可以使用的特权。

    有关过程,请参见如何确定进程的特权

  2. 在任何 shell 中调用操作并运行命令。

    有效特权集中列出的特权在整个会话中都有效。如果已为您直接指定了除基本特权集之外的特权,则会在有效特权集中列出这些特权。

示例 11-9 确定直接指定给您的特权

如果已经为您直接指定了特权,则基本特权集包含的特权会多于缺省的基本特权集。在此示例中,用户始终能够访问 proc_clock_highres 特权。

% /usr/ucb/whoami
jdoe
% ppriv -v $$
1800:   pfksh
flags = <none>
        E: file_link_any,…,proc_clock_highres,proc_session
        I: file_link_any,…,proc_clock_highres,proc_session
        P: file_link_any,…,proc_clock_highres,proc_session
        L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time
% ppriv -vl proc_clock_highres
        Allows a process to use high resolution timers.

示例 11-10 确定直接指定给角色的特权

角色使用管理 shell 或配置文件 shell。承担角色的用户可以使用此角色的 shell 列出已直接指定给此角色的特权。在以下示例中,已经直接将处理日期和时间程序的特权指定给角色 realtime

% su - realtime
Password: <Type realtime password>
$ /usr/ucb/whoami
realtime
$ ppriv -v $$
1600:   pfksh
flags = <none>
        E: file_link_any,…,proc_clock_highres,proc_session,sys_time
        I: file_link_any,…,proc_clock_highres,proc_session,sys_time
        P: file_link_any,…,proc_clock_highres,proc_session,sys_time
        L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time

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

未直接将特权指定给用户时,此用户可通过权限配置文件获取对特权命令的访问权限。必须在配置文件 shell 中执行权限配置文件中的命令。

开始之前

通过 Solaris Management Console 验证的用户或角色必须具有 solaris.admin.usermgr.read 授权。Basic Solaris User(基本 Solaris 用户)权限配置文件包括此授权。

  1. 确定已指定给您的权限配置文件。
    $ /usr/sadm/bin/smuser list -- -n username -l
    Authenticating as user: admin
    … Please enter a string value for: password :: 
    …
    User name:      username
    User ID (UID):  130
    Primary group:  staff
    Secondary groups: 
    Comment: object mgt jobs
    Login Shell: /bin/sh
    Home dir server: system
    Home directory: /export/home/username
    AutoHome setup: True
    Mail server: system
    Rights: Object Access Management
    Assigned Roles:
  2. 找到以 "Rights:" 开头的行。

    "Rights" 行会列出已直接指定给您的权限配置文件的名称。

  3. exec_attr 数据库中查找权限配置文件的名称。
    $ cd /etc/security
    $ grep "Object Access Management" exec_attr 
    Object Access Management:solaris:cmd:::/usr/bin/chgrp:privs=file_chown
    Object Access Management:solaris:cmd:::/usr/bin/chown:privs=file_chown
    Object Access Management:suser:cmd:::/usr/bin/chgrp:euid=0
    Object Access Management:suser:cmd:::/usr/bin/chmod:euid=0
    …

    具有已添加特权的命令列在 solaris 策略项的末尾。

  4. 在配置文件 shell 中键入需要特权的命令。

    在常规 shell 中键入这些命令时,它们运行时不会使用特权,因而不会成功运行。

    % pfsh
    $

示例 11-11 在配置文件 Shell 中运行特权命令

在以下示例中,用户 jdoe 不能从其常规 shell 中更改文件的组权限。但是,在配置文件 shell 中键入命令时,jdoe 可以更改这些权限。

% whoami
jdoe
% ls -l useful.script
-rwxr-xr-- 1 nodoe eng 262 Apr 2 10:52 useful.script
chgrp staff useful.script
chgrp: useful.script: Not owner
% pfksh
$ /usr/ucb/whoami
jdoe
$ chgrp staff useful.script
$ chown jdoe useful.script
$ ls -l useful.script
-rwxr-xr-- 1 jdoe staff 262 Apr 2 10:53 useful.script

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

角色通过包含具有指定权限的命令的权限配置文件来获取对特权命令的访问权限。为用户提供特权命令访问权限的最安全的方法是为用户指定一个角色。承担此角色之后,用户便可执行所有包括在此角色权限配置文件中的特权命令。

开始之前

通过 Solaris Management Console 验证的用户或角色必须具有 solaris.admin.usermgr.read 授权。Basic Solaris User(基本 Solaris 用户)权限配置文件包括此授权。

  1. 确定可以承担的角色。
    $ /usr/sadm/bin/smuser list -- -n username -l
    Authenticating as user: primadmin
    …
    User name:      username
    User ID (UID):  110
    Primary group:  staff
    Secondary groups: 
    Comment: Has admin roles
    Login Shell: /bin/sh
    …
    Rights: 
    Assigned Roles: primadmin, admin
  2. 找到以 "Assigned Roles:" 开头的行。

    "Assigned Roles" 行会列出您可以承担的角色。

  3. 确定您的角色之一所拥有的权限配置文件。
    % su - devadmin
    Enter password: Type devadmin password
    $ whoami
    devadmin
    $ profiles
    Device Security
    $ /usr/sadm/bin/smuser list -- -n admin -l
    Authenticating as user: primadmin
    …
    User name:      admin
    User ID (UID):  101
    Primary group:  sysadmin
    Secondary groups:
    Comment: system administrator
    Login Shell: /bin/pfksh
    …
    Rights: System Administrator
    Assigned Roles:
  4. 在 "Rights:" 行中找到该角色的权限配置文件的名称。
  5. prof_attr 数据库中查找权限配置文件。

    由于 System Administrator(系统管理员)配置文件是配置文件的集合,因此需要在 System Administrator(系统管理员)配置文件中列出这些配置文件。

    $ cd /etc/security
    $ grep "System Administrator" prof_attr 
    System Administrator:::Can perform most non-security administrative
    tasks:profiles=Audit Review,Printer Management,Cron Management,
    Device Management,File System Management,Mail Management,Maintenance
    and Repair,Media Backup,Media Restore,Name Service Management,Network
    Management,Object Access Management,Process Management,Software
    Installation,User Management,All;help=RtSysAdmin.html
  6. 对于每个权限配置文件,在 exec_attr 数据库中查找相应的权限配置文件。

    例如,Network Management(网络管理)配置文件是 System Administrator(系统管理员)配置文件的补充配置文件。Network Management(网络管理)配置文件包括许多特权命令。

    $ cd /etc/security
    $ grep "Network Management" exec_attr 
    Network Management:solaris:cmd:::/usr/sbin/ifconfig:privs=sys_net_config
    Network Management:solaris:cmd:::/usr/sbin/route:privs=sys_net_config

    这些命令及其指定特权是 solaris 策略项的最后两个字段。可以在角色的配置文件 shell 中运行这些命令。

示例 11-12 运行您的角色中的特权命令

当用户承担了某个角色时,其 shell 将成为配置文件 shell。因此,将使用指定给这些命令的特权来执行命令。在以下示例中,admin 角色可以更改 useful.script 文件的权限。

% whoami
jdoe
% ls -l useful.script
-rwxr-xr-- 1 elsee eng 262 Apr 2 10:52 useful.script
chgrp admin useful.script
chgrp: useful.script: Not owner
% su - admin
Password: <Type admin password>
$ /usr/ucb/whoami
admin
$ chgrp admin useful.script
$ chown admin useful.script
$ ls -l useful.script
-rwxr-xr-- 1 admin admin 262 Apr 2 10:53 useful.script