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

退出打印视图

更新时间: 2014 年 7 月
 
 

root 更改为用户或角色

缺省情况下,root 是 Oracle Solaris 中的一个角色。您可以选择将它更改为一个用户,更改回角色,或者禁止使用。

如果您使用 Oracle Enterprise Manager 或采用传统的超级用户管理模型而不是权限模型,必须将 root 更改为一个用户。有关背景的信息,请参见确定用于管理的权限模型

如果您采用权限模型,在淘汰已从网络中删除的系统时,可能需要将 root 更改为用户。在此情况下,以 root 身份登录系统可简化清除过程。


注 -  如果管理员远程使用 root 角色,有关保护远程登录安全的说明,请参见在 Oracle Solaris 11.2 中管理安全 Shell 访问 中的如何使用安全 Shell 远程管理 ZFS

在某些站点上,root 不是生产系统上的合法帐户。要禁止使用 root 帐户,请参见Example 5–13

如何将 root 角色更改为用户

root 必须可以直接登录系统的系统上,需要执行此过程。

开始之前

您必须承担 root 角色。

  1. 从本地用户中删除 root 角色指定。

    例如,从两个用户中删除角色指定。

    % su -
    Password: xxxxxxxx
    # roles jdoe
    root
    # roles kdoe
    root
    # roles ldoe
    secadmin
    # usermod -R "" jdoe
    # usermod -R "" kdoe
    #
  2. root 角色更改为用户。
    # rolemod -K type=normal root

    当前承担 root 角色的用户保持不变,而具有 root 访问权限的其他用户可以使用 su 命令成为 root 或以 root 用户身份登录系统。

  3. 检验更改。

    您可以使用以下命令之一。

    • 检查 rootuser_attr 项。
      # getent user_attr root
      root::::auths=solaris.*;profiles=All;audit_flags=lo\:no;lock_after_retries=no;
      min_label=admin_low;clearance=admin_high

      如果输出中缺少 type 关键字或此关键字等于 normal,则此帐户不是一个角色。

    • 查看 userattr 命令的输出。
      # userattr type root

      如果输出为空或列出了 normal,则此帐户不是一个角色。

示例 5-12  root 用户更改为 root 角色

在此示例中,root 用户将 root 用户恢复为角色。

首先,root 用户将 root 帐户更改为角色并验证此更改。

# usermod -K type=role root
# getent user_attr root
root::::type=role...

然后,rootroot 角色指定给一个本地用户。

# usermod -R root jdoe
示例 5-13  防止 root 角色用于维护系统

在以下示例中,站点安全策略要求应防止 root 帐户维护系统。管理员已创建和测试维护系统的角色。这些角色包括每个安全配置文件和 "System Administrator"(系统管理员)权限配置文件。已为一位可信用户指定了可以恢复备份的角色。没有任何角色可以更改用户、角色或权限配置文件的审计标志,或更改角色的口令。

为防止使用 root 帐户维护系统,安全管理员删除了 root 角色指定。由于 root 帐户必须能够以单用户模式登录到系统,所以该帐户保留了一个口令。

# usermod -K roles= jdoe
# userattr roles jdoe

故障排除

在桌面环境中,如果 root 为角色,则您无法以 root 身份直接登录。一条诊断消息会指出 root 在您的系统中为角色。

    如果您没有可以承担 root 角色的本地帐户,请执行以下步骤:

  • root 身份在单用户模式下登录到系统,创建一个本地用户帐户和口令。

  • root 角色指定给新帐户。

  • 以新用户的身份登录并承担 root 角色。