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 视图
- 在 Identity 选项卡下,选择 ID 视图 子选项卡。
- 点并为 ID 视图提供一个名称。
图 18.1. 添加 ID 视图
- 单击确认。
新的 ID 视图现在显示在 ID 视图列表中。
图 18.2. ID 视图列表
添加用户覆盖到 ID 视图
- 在 ID 视图列表中,单击 ID 视图的名称。
图 18.3. 编辑 ID 视图
- 在 Users 选项卡下,点 添加用户覆盖。
- 选择要覆盖其属性值的用户帐户,然后单击。
用户覆盖现在显示在
example_for_host1
ID 视图页中。
图 18.4. 覆盖列表
指定覆盖的属性
- 单击您要用来更改属性值的覆盖。
图 18.5. 编辑覆盖
- 定义 属性的新值。例如,覆盖用户帐户使用的 SSH 公钥:
- 点。
图 18.6. 添加 SSH 公钥
- 粘贴到公钥中。
注意有关将 SSH 密钥添加到 IdM 的详情,请参考 第 22.5 节 “管理用户的公共 SSH 密钥”。 - 点以更新覆盖。
将 ID 视图应用到特定主机
- 在 ID 视图列表中,单击 ID 视图的名称。
图 18.7. 编辑 ID 视图
- 在 Hosts 选项卡下,单击 。
- 选择
host1.example.com
主机,并将它移到 Prospective 列中。 - 点。
该主机现在显示在 ID 视图应用到的主机列表中。
图 18.8. 列出主机以哪个 ID 查看应用
18.3.2. 命令行:覆盖特定主机的属性值
在管理 ID 视图前,请以 IdM 管理员身份请求票据。例如:
$ kinit admin
- 创建新的 ID 视图。例如,创建一个名为
example_for_host1
的 ID 视图:$ ipa idview-add example_for_host1 --------------------------- Added ID View "example_for_host1" --------------------------- ID View Name: example_for_host1
- 将用户覆盖添加到
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 小时和半小时。
- 将
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
选项分别应用到其中的每一个成员。