在 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. 检验更改。

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

    • 检查 root 的 user_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...

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

# 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 角色。