36.7. 添加 ID 视图来覆盖 IdM 客户端上的 IdM 用户主目录

身份管理(IdM)中的 ID 视图覆盖与特定 IdM 用户关联的 POSIX 属性值。按照以下流程,在名为 host1 的 IdM 客户端上创建一个应用到 idm_user 的 ID 视图,以允许用户使用 /home/user_1234/ 目录作为用户主目录,而不是 /home/idm_user/

先决条件

  • 具有对 host1.idm.example.com 的 root 访问权限。
  • 您已以具有所需特权的用户身份登录,如 admin

步骤

  1. 以 root 用户身份,创建您希望 idm_userhost1.idm.example.com 上作为用户主目录使用的目录:

    [root@host1 /]# mkdir /home/user_1234/
  2. 更改目录的所有权:

    [root@host1 /]# chown idm_user:idm_user /home/user_1234/
  3. 创建 ID 视图。例如,创建名为 example_for_host1 的 ID 视图:

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

    • 输入 ipa idoverrideuser-add 命令
    • 添加 ID 视图的名称
    • 添加用户名,也称为锚
    • 添加 --homedir 选项:
    $ ipa idoverrideuser-add example_for_host1 idm_user --homedir=/home/user_1234
    -----------------------------
    Added User ID override "idm_user"
    -----------------------------
      Anchor to override: idm_user
      Home directory: /home/user_1234/
  5. 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 视图不会应用到新主机。

  6. 要将新配置立即应用到 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

验证步骤

  1. idm_user用户身份,通过 SSH 连接到 host1:

    [root@r8server ~]# ssh idm_user@host1.idm.example.com
    Password:
    Activate the web console with: systemctl enable --now cockpit.socket
    
    Last login: Sun Jun 21 22:34:25 2020 from 192.168.122.229
    [idm_user@host1 /]$
  2. 打印工作目录:

    [idm_user@host1 /]$ pwd
    /home/user_1234/