在 root 角色中,初始用户具有所有管理权限。root 用户可以为可信用户指定管理权限(例如角色、权限配置文件或特定特权)和授权。本节说明这类用户可以如何使用指定给他的权限。
要执行管理任务,请打开终端窗口,然后从以下选项进行选择:
对于熟悉 sudo 命令的管理员,使用在 sudoers 中指定给他的管理命令名运行该命令。有关更多信息,请参见 sudo (1M) 和 sudoers (4) 手册页。
如果您要执行的任务需要超级用户特权,请成为 root 用户。
% su - Password: xxxxxxxx #
如果您的任务是指定给某个角色,承担可以执行该任务的角色。
在以下示例中,您承担了审计配置角色。此角色包括 "Audit Configuration"(审计配置)权限配置文件。您已经从管理员处收到了角色口令。
% su - audadmin Password: xxxxxxxx #
您之前键入该命令的 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
在以下示例中,已经将 "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 中所示。
如果您不是 UID 为 0 的 root,则缺省情况下您无法编辑系统文件。不过,如果为您指定了 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 角色。
要确定此角色可以运行的命令,用户需按照列出权限配置文件中的说明操作。