系统管理指南:安全性服务

Procedure如何使 root 用户成为角色

此过程说明如何将 root 从登录用户更改为角色。完成此过程后,将无法再以 root 身份登录到系统,但在单用户模式下除外。如果已为您指定 root 角色,则可以对 root 执行 su

通过将 root 用户更改为角色,可以防止匿名 root 登录。由于用户必须首先登录,然后才能承担 root 角色,因此用户的登录 ID 将提供给审计服务并位于 sulog 文件中。

开始之前

如果将 root 用户更改为角色,但未将该角色指定给有效用户,或当前没有与 root 用户等效的现有角色,则任何用户都不能成为超级用户。

  1. 以普通用户身份登录到目标主机。

  2. 承担主管理员角色,或成为超级用户。

    主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  3. 创建可承担 root 角色的本地用户。


    $ useradd -c comment -d homedir username
    
    -c comment

    描述用户的注释。

    -d homedir

    用户的起始目录。此目录应位于本地系统中。

    username

    新本地用户的名称。


    # useradd -c "Local administrative user" -d /export/home1 admuser
    
  4. 为用户指定口令。


    # passwd -r files admuser
    
    New Password:    <键入口令>
    
    Re-enter new Password: <重新键入口令>
    
    passwd: password successfully changed for admuser
    
    #
  5. 确保您未以 root 身份登录。


    # who
    
    jdoe    console      May 24 13:51    (:0)
    
    jdoe    pts/5        May 24 13:51    (:0.0)
    
    jdoe    pts/4        May 24 13:51    (:0.0)
    
    jdoe    pts/10       May 24 13:51    (:0.0)
    
  6. root 用户更改为角色。


    # usermod -K type=role root
    
  7. 验证 root 是否为角色。

    user_attr 文件中 root 项的显示应与以下内容类似:


    root::::type=role;auths=solaris.*,solaris.grant;profiles=Web Console 
    
    Management,All;lock_after_retries=no
  8. root 角色指定给本地管理用户。


    # usermod -R root admuser
    
  9. 配置在失败时返回的名称服务。

    1. 打开新的终端窗口并承担 root 角色。


      % whoami
      
      jdoe
      
      % su admuser
      
      Enter password:   <键入 admuser 的口令>
      
      % roles
      
      root
      
      % su root
      
      Enter password:   <键入 root 的口令>
      
      #
    2. 编辑 nsswitch.conf 文件。

      例如,nsswitch.conf 文件中的以下各项将允许返回名称服务。


      passwd:  files nis [TRYAGAIN=0 UNAVAIL=return NOTFOUND=return]
      
      group:  files nis [TRYAGAIN=0 UNAVAIL=return NOTFOUND=return]
  10. root 角色指定给名称服务中选定的用户帐户。

    有关过程,请参见如何更改用户的 RBAC 属性