20.5. 在 CLI 上创建 sudo 规则,以作为 IdM 客户端上的服务帐户运行命令
在 IdM 中,您可以使用 RunAs alias 配置 sudo
规则,以便以另一个用户或组身份运行 sudo
命令。例如,您可能有一个托管数据库应用的 IdM 客户端,您需要以与该应用对应的本地服务帐户运行命令。
使用此示例在命令行上创建名为 run_third-party-app_report
的 sudo
规则,以允许 idm_user
帐户以 idmclient
主机上 thirdpartyapp
服务帐户的身份运行/opt/third-party-app/bin/report
命令。
先决条件
- 以 IdM 管理员身份登录。
-
您已在 IdM 中创建
了 idm_user
的用户帐户,并通过为用户创建密码来解锁帐户。有关使用 CLI 添加新 IdM 用户的详情,请参阅使用命令行添加用户。 -
idmclient
主机上没有本地的idm_user
。idm_user
用户未列在本地/etc/passwd
文件中。 -
您有一个名为
third-party-app
的自定义应用程序安装在idmclient
主机上。 -
third-party-app
应用程序的report
命令安装在/opt/third-party-app/bin/report
目录中。 -
您已创建了一个名为
thirdpartyapp
的本地服务帐户,来为third-party-app
应用程序执行命令。
步骤
获取 Kerberos 票据作为 IdM
admin
。kinit admin
[root@idmclient ~]# kinit admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
/opt/third-party-app/bin/report
命令添加到sudo
命令的 IdM 数据库:ipa sudocmd-add /opt/third-party-app/bin/report
[root@idmclient ~]# ipa sudocmd-add /opt/third-party-app/bin/report ---------------------------------------------------- Added Sudo Command "/opt/third-party-app/bin/report" ---------------------------------------------------- Sudo Command: /opt/third-party-app/bin/report
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个名为
run_third-party-app_report
的sudo
规则:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
--users=<user>
选项来为sudorule-add-runasuser
命令指定 RunAs 用户:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 用户(或使用
--groups=*
选项指定 的组)可以是 IdM 的外部用户,如本地服务帐户或活动目录用户。不要为组名称添加%
前缀。将
/opt/third-party-app/bin/report
命令添加到run_third-party-app_report
规则中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
run_third- party-app_report
规则应用到 IdMidmclient
主机:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
idm_user
帐户添加到run_third- party-app_report
规则中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
将更改从服务器传播到客户端可能需要几分钟时间。
验证
-
以
idm_user
帐户身份登录idmclient
主机。 测试新的 sudo 规则:
显示允许
idm_user
帐户执行的sudo
规则。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作为
thirdpartyapp
服务帐户,运行report
命令。sudo -u thirdpartyapp /opt/third-party-app/bin/report
[idm_user@idmclient ~]$ sudo -u thirdpartyapp /opt/third-party-app/bin/report [sudo] password for idm_user@idm.example.com: Executing report... Report successful.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow