7.6. SSSD 客户端视图
SSSD 允许您创建一个客户端视图来为 POSIX 用户或组属性指定新值。视图仅对配置了覆盖的本地计算机生效。您可以为除
ipa
以外的所有 id_provider
值配置客户端覆盖。如果您使用 ipa
供应商,请在 IdM 中集中定义 ID 视图。请参阅《 Linux 域身份、身份验证和策略指南》 中的对应部分。
如需更多信息,请参阅 Linux 域身份、身份验证和策略指南 中的对 SSSD 性能的影响 部分。
注意
使用 sss_override user-add、sss_override group-add 或 sss_override user-import 命令创建第一次覆盖后,重启 SSSD 以使更改生效:
# systemctl restart sssd
7.6.1. 为用户帐户定义不同的属性值
作为管理员,您要将现有主机配置为使用 LDAP 中的帐户。但是,LDAP 中的用户新 ID 与本地系统上的用户之前 ID 不同。您可以配置客户端侧视图来覆盖 UID,而不是更改现有文件的权限。
使用 UID 6666 覆盖用户帐户 的 UID:
- 可选。显示 用户帐户 的当前 UID:
# id user uid=1241400014(user_name) gid=1241400014(user_name) Groups=1241400014(user_name)
- 使用 6666 覆盖帐户的 UID:
# sss_override user-add user -u 6666
- 等待内存中缓存过期。手动过期:
# sss_cache --users
- 验证是否应用了新的 UID:
# id user uid=6666(user_name) gid=1241400014(user_name) Groups=1241400014(user_name)
- 可选。显示用户的覆盖:
# sss_override user-show user user@ldap.example.com::6666:::::
如需您可以覆盖的属性列表,请在命令中添加
--help
来列出命令行选项:
# sss_override user-add --help
7.6.2. 列出主机上的所有覆盖
作为管理员,您要列出主机上的所有用户和组覆盖,以验证是否已覆盖正确的属性。
列出所有用户覆盖:
# sss_override user-find user1@ldap.example.com::8000::::/bin/zsh: user2@ldap.example.com::8001::::/bin/bash: ...
列出所有组覆盖:
# sss_override group-find group1@ldap.example.com::7000 group2@ldap.example.com::7001 ...
7.6.3. 删除本地覆盖
您之前为 用户帐户 的 shell 创建覆盖,该帐户在全局 LDAP 目录中定义。要删除帐户的覆盖,请运行:
# sss_override user-del user
更改会立即生效。
要为组群删除覆盖,请运行:
# sss_override group-del group
注意
当您为用户或组群删除覆盖时,此对象的所有覆盖都会被删除。
7.6.4. 导出和导入本地视图
客户端视图存储在本地 SSSD 缓存中。您可以将用户和组视图从缓存导出到文件,以创建备份。例如,当删除 SSSD 缓存时,您可以稍后重新恢复视图。
备份用户和组视图:
# sss_override user-export /var/lib/sss/backup/sssd_user_overrides.bak # sss_override group-export /var/lib/sss/backup/sssd_group_overrides.bak
恢复用户和组视图:
# sss_override user-import /var/lib/sss/backup/sssd_user_overrides.bak # sss_override group-import /var/lib/sss/backup/sssd_group_overrides.bak