Red Hat Training

A Red Hat training course is available for RHEL 8

35.5. 使用 ID 视图来覆盖特定主机上 IdM 用户的登录名称

按照以下流程,为特定 IdM 客户端创建一个 ID 视图,该视图覆盖与特定 IdM 用户关联的 POSIX 属性值。该流程使用 ID 视图示例,它可让名为 idm_user 的 IdM 用户使用 user_1234 登录名称登录到名为 host1 的 IdM 客户端。

先决条件

  • 以 IdM 管理员身份登录。

流程

  1. 创建新的 ID 视图。例如,创建名为 example_for_host1 的 ID 视图:

    $ ipa idview-add example_for_host1
    ---------------------------
    Added ID View "example_for_host1"
    ---------------------------
      ID View Name: example_for_host1
  2. 将用户覆盖添加到 example_for_host1 ID 视图。覆盖用户登录:

    • 输入 ipa idoverrideuser-add 命令
    • 添加 ID 视图的名称
    • 添加用户名,也称为锚
    • 添加 --login 选项:

      $ ipa idoverrideuser-add example_for_host1 idm_user --login=user_1234
      -----------------------------
      Added User ID override "idm_user"
      -----------------------------
        Anchor to override: idm_user
        User login: user_1234

      要获得可用选项列表,请运行 ipa idoverrideuser-add --help。

      注意

      ipa idoverrideuser-add --certificate 命令替换指定 ID 视图中帐户的所有现有证书。要附加额外的证书,请使用 ipa idoverrideuser-add-cert 命令:

      $ ipa idoverrideuser-add-cert example_for_host1 user --certificate="MIIEATCC..."
  3. 可选:使用 ipa idoverrideuser-mod 命令,您可以为现有用户覆盖指定新的属性值。
  4. example_for_host1 应用到 host1.idm.example.com 主机:

    $ ipa idview-apply example_for_host1 --hosts=host1.idm.example.com
    -----------------------------
    Applied ID View "example_for_host1"
    -----------------------------
    hosts: host1.idm.example.com
    ---------------------------------------------
    Number of hosts the ID View was applied to: 1
    ---------------------------------------------
    注意

    ipa idview-apply 命令也接受 --hostgroups 选项。选项将 ID 视图应用到属于指定主机组的主机,但不会将 ID 视图与主机组本身相关联。相反,--hostgroups 选项会展开指定主机组的成员,并将 --hosts 选项分别应用到其中的每一个成员。

    这意味着,如果以后将主机添加到主机组中,则 ID 视图不会应用到新主机。

  5. 要将新配置立即应用到 host1.idm.example.com 系统:

    1. 以 root 身份通过 SSH 连接到系统:

      $ ssh root@host1
      Password:
    2. 清除 SSSD 缓存:

      root@host1 ~]# sss_cache -E
    3. 重启 SSSD 守护进程:
    root@host1 ~]# systemctl restart sssd

验证步骤

  • 如果您有 user_1234 的凭证,您可以使用它们登录到 host1 上的 IdM:

    1. 使用 user_1234 作为登录名称,通过 SSH 连接到 host1

      [root@r8server ~]# ssh user_1234@host1.idm.example.com
      Password:
      
      Last login: Sun Jun 21 22:34:25 2020 from 192.168.122.229
      [user_1234@host1 ~]$
    2. 显示工作目录:

      [user_1234@host1 ~]$ pwd
      /home/idm_user/
  • 或者,如果您在 host1 上有 root 凭证,您可以使用它们来检查 idm_useruser_1234id 命令的输出:

    [root@host1 ~]# id idm_user
    uid=779800003(user_1234) gid=779800003(idm_user) groups=779800003(idm_user)
    [root@host1 ~]# user_1234
    uid=779800003(user_1234) gid=779800003(idm_user) groups=779800003(idm_user)