在 Oracle® Solaris 11.2 中确保用户和进程的安全

退出打印视图

更新时间: 2014 年 7 月
 
 

使用所指定的管理权限

root 角色中,初始用户具有所有管理权限。root 用户可以为可信用户指定管理权限(例如角色、权限配置文件或特定特权)和授权。本节说明这类用户可以如何使用指定给他的权限。


注 -  Oracle Solaris 提供了用于编辑管理文件的特殊编辑器。编辑管理文件时,使用 pfedit 命令。Example 5–1 显示如何允许非 root 用户编辑指定系统文件。

要执行管理任务,请打开终端窗口,然后从以下选项进行选择:

  • 如果您使用 sudo,键入 sudo 命令。

    对于熟悉 sudo 命令的管理员,使用在 sudoers 中指定给他的管理命令名运行该命令。有关更多信息,请参见 sudo (1M) 和 sudoers (4) 手册页。

  • 如果您要执行的任务需要超级用户特权,请成为 root 用户。

    % su -
    Password: xxxxxxxx
    #

    注 -  无论 root 是用户还是角色,此命令都可以运行。井号 (#) 提示符表明您现在已是 root 用户。
  • 如果您的任务是指定给某个角色,承担可以执行该任务的角色。

    在以下示例中,您承担了审计配置角色。此角色包括 "Audit Configuration"(审计配置)权限配置文件。您已经从管理员处收到了角色口令。

    % su - audadmin
    Password: xxxxxxxx
    #

    提示  -  如果您没有收到角色口令,您的管理员已经将角色配置为需要您的用户口令。键入您的用户口令以承担该角色。有关此选项的更多信息,请参见Example 3–16

    您之前键入该命令的 shell 现在成为配置文件 shell。在该 shell 中,您可以运行 auditconfig 命令。有关配置文件 shell 的更多信息,请参见配置文件 Shell 和权限验证


    提示  -  要查看您的角色的权限,请参见列出权限配置文件
  • 如果您的任务是以用户方式直接指定给您的,请通过以下方法之一创建配置文件 shell:

    • 使用 pfbash 命令创建评估管理权限的 shell。

      在以下示例中,已经将 "Audit Configuration"(审计配置)权限配置文件直接指定给您。以下命令集允许您在 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 命令运行一个管理命令。

      在以下示例中,已经将 "Audit Configuration"(审计配置)权限配置文件作为需要验证权限配置文件直接指定给您。您可以运行此配置文件中的特权命令,即运行带该命令名称的 pfexec 命令。例如,您可以查看用户预选的审计标志:

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

      通常,要运行包含在您的权限中的其他特权命令,必须在键入该特权命令之前再次键入 pfexec。有关更多信息,请参见 pfexec(1) 手册页。如果配置有口令缓存,您可以在一定间隔(可配置)内运行后续命令而不提供口令,如Example 5–2 中所示。

示例 5-1  编辑系统文件

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

# pfedit /etc/security/audit_warn

有关更多信息,请参见 pfedit (4) 手册页。所有管理员都可以使用此命令。

示例 5-2  缓存验证以便简化角色使用

在此示例中,管理员配置了一个用于管理审计配置的角色,但通过缓存该用户的验证来简化使用。首先,管理员创建并指定角色。

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

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

% su - audadmin -c auditconfig option
Password: xxxxxxxx 
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_tty_tickets(5)pam.conf(4) 手册页以及在 Oracle Solaris 11.2 中管理 Kerberos 和其他验证服务 中的第 1  章 使用可插拔验证模块

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

% su - audadmin -c auditconfig option
Password: xxxxxxxx 
auditconfig output
% su - audadmin -c auditconfig option 
auditconfig output
...
示例 5-3  承担 root 角色

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

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

有关特权的信息,请参见进程权限管理以及 ppriv(1) 手册页。

示例 5-4  承担 ARMOR 角色

在本示例中,用户承担了管理员指定的 ARMOR 角色。

在终端窗口中,用户确定指定了哪些角色。

% roles
fsadm
sysop

然后该用户承担 fsadm 角色,并提供用户的口令。

% su - fsadm
Password: xxxxxxxx
#

su - rolename 命令将终端的 shell 更改为配置文件 shell。现在,该用户在此终端窗口中是 fsadm 角色。

要确定此角色可以运行的命令,用户需按照列出权限配置文件中的说明操作。