缺省情况下,root 是 Oracle Solaris 中的一个角色。您可以选择将它更改为一个用户,更改回角色,或者禁止使用。
如果您使用 Oracle Enterprise Manager 或采用传统的超级用户管理模型而不是权限模型,必须将 root 更改为一个用户。有关背景的信息,请参见确定用于管理的权限模型。
如果您采用权限模型,在淘汰已从网络中删除的系统时,可能需要将 root 更改为用户。在此情况下,以 root 身份登录系统可简化清除过程。
在某些站点上,root 不是生产系统上的合法帐户。要禁止使用 root 帐户,请参见Example 5–13。
在 root 必须可以直接登录系统的系统上,需要执行此过程。
开始之前
您必须承担 root 角色。
例如,从两个用户中删除角色指定。
% su - Password: xxxxxxxx # roles jdoe root # roles kdoe root # roles ldoe secadmin # usermod -R "" jdoe # usermod -R "" kdoe #
# rolemod -K type=normal root
当前承担 root 角色的用户保持不变,而具有 root 访问权限的其他用户可以使用 su 命令成为 root 或以 root 用户身份登录系统。
您可以使用以下命令之一。
# 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 type root
如果输出为空或列出了 normal,则此帐户不是一个角色。
在此示例中,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 角色。