55.7. 在 IdM 客户端上为 sudo 启用 GSSAPI 身份验证
以下流程描述了通过 pam_sss_gss.so
PAM 模块在 IdM 客户端上为 sudo
和 sudo -i
命令启用通用安全服务应用程序接口(GSSAPI)身份验证。使用这个配置,IdM 用户可以使用它们的 Kerberos 票据对 sudo
命令进行身份验证。
先决条件
-
您已为应用于 IdM 主机的 IdM 用户创建了
sudo
规则。在本例中,您已创建了idm_user_reboot
sudo
规则,为idm_user
帐户授予在idmclient
主机上运行/usr/sbin/reboot
命令的权限。 -
idmclient
主机正在运行 RHEL 8.4 或更高版本。 -
您需要
root
权限来修改/etc/sssd/sssd.conf
文件和/etc/pam.d/
目录中的 PAM 文件。
流程
-
打开
/etc/sssd/sssd.conf
配置文件: 在
[domain/<domain_name> ]
部分中添加以下条目。[domain/<domain_name>] pam_gssapi_services = sudo, sudo-i
-
保存并关闭
/etc/sssd/sssd.conf
文件。 重启 SSSD 服务以载入配置更改。
[root@idmclient ~]# systemctl restart sssd
如果您正在运行 RHEL 8.8 或更高版本:
[可选] 确定是否您已选择了
sssd
authselect
配置文件:# authselect current Profile ID: sssd
输出显示选择了
sssd
authselect
配置文件。如果选择了
sssd
authselect
配置文件,请启用 GSSAPI 身份验证:# authselect enable-feature with-gssapi
如果没有选择
sssd
authselect
配置文件,请选择它并启用 GSSAPI 身份验证:# authselect select sssd with-gssapi
如果您正在运行 RHEL 8.7 或更早版本:
-
打开
/etc/pam.d/sudo
PAM 配置文件。 添加下列条目,作为
/etc/pam.d/sudo
文件中的auth
部分的第一行。#%PAM-1.0 auth sufficient pam_sss_gss.so auth include system-auth account include system-auth password include system-auth session include system-auth
-
保存并关闭
/etc/pam.d/sudo
文件。
-
打开
验证步骤
以
idm_user
帐户身份登录到主机。[root@idm-client ~]# ssh -l idm_user@idm.example.com localhost idm_user@idm.example.com's password:
验证您有一个票据授予票据作为
idm_user
帐户。[idmuser@idmclient ~]$ klist Ticket cache: KCM:1366201107 Default principal: idm_user@IDM.EXAMPLE.COM Valid starting Expires Service principal 01/08/2021 09:11:48 01/08/2021 19:11:48 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM renew until 01/15/2021 09:11:44
(可选) 如果您没有
idm_user
帐户的 Kerberos 凭证,请删除您当前的 Kerberos 凭证,并请求正确的凭证。[idm_user@idmclient ~]$ kdestroy -A [idm_user@idmclient ~]$ kinit idm_user@IDM.EXAMPLE.COM Password for idm_user@idm.example.com:
使用
sudo
重启机器,而不用指定密码。[idm_user@idmclient ~]$ sudo /usr/sbin/reboot
其它资源
- IdM 术语 列表中的 GSSAPI 条目
- 使用 IdM Web UI ,授予 sudo 访问 IdM 客户端上 IdM 用户的权限
- 使用 CLI 向 IdM 客户端上的 IdM 用户授予 sudo 访问权限
-
pam_sss_gss(8)
手册页 -
sssd.conf(5)
手册页