Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

18.3. 在不同主机上为用户帐户定义不同的属性值

管理员可以创建多个 ID 视图来覆盖用户帐户使用的属性值,并将这些 ID 视图应用到不同的客户端主机。Example:服务帐户配置为在不同主机上进行身份验证时使用不同的 SSH 公钥。
本节包含以下步骤:
该流程演示了如何为名为 host1.example.com 的客户端主机创建 ID 视图。若要覆盖其他主机上的属性值,可使用流程创建多个 ID 视图,每个主机对应一个。
在以下步骤中:
  • user 是需要覆盖其属性的用户帐户
  • host1.example.com 是应用 ID 视图的主机
重要
创建新 ID 视图后,在应用 ID 视图的所有客户端中重启 SSSD。
如果新 ID 视图更改了 UID 或 GID,则也会清除这些客户端上的 SSSD 缓存。

18.3.1. Web UI:覆盖特定主机的属性值

要管理 ID 视图,请首先以 IdM 管理员身份登录 IdM Web UI。

创建新 ID 视图

  1. Identity 选项卡下,选择 ID 视图 子选项卡。
  2. Add 并为 ID 视图提供一个名称。

    图 18.1. 添加 ID 视图

    添加 ID 视图
  3. 单击 Add 确认。
新的 ID 视图现在显示在 ID 视图列表中。

图 18.2. ID 视图列表

ID 视图列表

添加用户覆盖到 ID 视图

  1. 在 ID 视图列表中,单击 ID 视图的名称。

    图 18.3. 编辑 ID 视图

    编辑 ID 视图
  2. Users 选项卡下,点 Add 添加用户覆盖。
  3. 选择要覆盖其属性值的用户帐户,然后单击 Add
用户覆盖现在显示在 example_for_host1 ID 视图页中。

图 18.4. 覆盖列表

覆盖列表

指定覆盖的属性

  1. 单击您要用来更改属性值的覆盖。

    图 18.5. 编辑覆盖

    编辑覆盖
  2. 定义 属性的新值。
    例如,覆盖用户帐户使用的 SSH 公钥:
    1. SSH 公钥:添加

      图 18.6. 添加 SSH 公钥

      添加 SSH 公钥
    2. 粘贴到公钥中。
    注意
    有关将 SSH 密钥添加到 IdM 的详情,请参考 第 22.5 节 “管理用户的公共 SSH 密钥”
  3. Save 以更新覆盖。

将 ID 视图应用到特定主机

  1. 在 ID 视图列表中,单击 ID 视图的名称。

    图 18.7. 编辑 ID 视图

    编辑 ID 视图
  2. Hosts 选项卡下,单击 Apply to hosts
  3. 选择 host1.example.com 主机,并将它移到 Prospective 列中。
  4. 应用
该主机现在显示在 ID 视图应用到的主机列表中。

图 18.8. 列出主机以哪个 ID 查看应用

列出主机以哪个 ID 查看应用

18.3.2. 命令行:覆盖特定主机的属性值

在管理 ID 视图前,请以 IdM 管理员身份请求票据。例如:
$ kinit admin
  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 视图的名称和用户覆盖。
    • 若要指定新属性值,也可添加对应的命令行选项。如需可用选项的列表,请运行 ipa idoverrideuser-add --help。例如,使用 --sshpubkey 选项覆盖 SSH 公钥值:
      $ ipa idoverrideuser-add example_for_host1 user --sshpubkey="ssh-rsa AAAAB3NzaC1yrRqFE...gWRL71/miPIZ user@example.com"
      -----------------------------
      Added User ID override "user"
      -----------------------------
        Anchor to override: user
        SSH public key: ssh-rsa
                        AAAB3NzaC1yrRqFE...gWRL71/miPIZ
      		  user@example.com
      注意
      有关将 SSH 密钥添加到 IdM 的详情,请参考 第 22.5 节 “管理用户的公共 SSH 密钥”
    • ipa idoverrideuser-add --certificate 命令替换指定 ID 视图中帐户的所有现有证书。要附加额外的证书,请使用 ipa idoverrideuser-add-cert 命令:
      $ ipa idoverrideuser-add-cert example_for_host1 user --certificate="MIIEATCC..."
    • 使用 ipa idoverrideuser-mod 命令,您还可以为现有用户覆盖指定新的属性值。
    • 使用 ipa idoverrideuser-del 命令删除用户覆盖。
      注意
      如果您使用此命令删除 SSH 密钥覆盖,则不会立即从缓存中删除 SSH 密钥。使用默认缓存超时值(entry_cache_timeout = 5400)时,密钥会在缓存中保留 1 小时和半小时。
  3. example_for_host1 应用到 host1.example.com 主机:
    $ ipa idview-apply example_for_host1 --hosts=host1.example.com
    -----------------------------
    Applied ID View "example_for_host1"
    -----------------------------
    hosts: host1.example.com
    ---------------------------------------------
    Number of hosts the ID View was applied to: 1
    ---------------------------------------------
    注意
    ipa idview-apply 命令也接受 --hostgroups 选项。选项将 ID 视图应用到属于指定主机组的主机,但不会将 ID 视图与主机组本身相关联。相反,--hostgroups 选项会展开指定主机组的成员,并将 --hosts 选项分别应用到其中的每一个成员。