8.6. 在 IdM WebUI 中创建一个 sudo 规则,该规则以 IdM 客户端上服务帐户的身份运行命令
在 IdM 中,您可以使用 RunAs alias 配置 sudo
规则,以便以另一个用户或组身份运行 sudo
命令。例如,您可能有一个托管数据库应用的 IdM 客户端,您需要以与该应用对应的本地服务帐户运行命令。
使用这个示例来在 IdM WebUI 中创建一个名为 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
文件中。 -
您已在
idmclient
主机上已安装了一个名为third-party-app
的自定义应用程序。 -
用于
third-party-app
的report
命令安装在/opt/third- party-app/bin/report
目录中。 -
您已创建了一个名为
thirdrdapp
的本地服务帐户,来执行third-party-app
应用程序的命令。
步骤
将
/opt/third-party-app/bin/report
命令添加到sudo
命令的 IdM 数据库中:-
导航到 Policy
Sudo Sudo Commands。 - 单击右上角的 Add,以打开 Add sudo 命令对话框。
输入命令:
/opt/third-party-app/bin/report
。- 点 Add。
-
导航到 Policy
使用新的
sudo
命令条目来创建新的sudo
规则:-
导航到 Policy
Sudo Sudo rules。 - 单击右上角的 Add,以打开 Add sudo 规则对话框。
输入
sudo
规则的名称:run_third-party-app_report。- 点 Add and Edit。
指定用户:
- 在 Who 部分中,选中指定的用户和组单选按钮。
- 在 User category the rule applies to 子部分中,单击 Add 来打开 将用户添加到 sudo 规则 "run_third-party-app_report" 对话框。
在 Available 栏的 Add users into sudo rule "run_third-party-app_report" 对话框中,选择 idm_user,并把它移到 Prospective 栏。
- 点 Add。
指定主机:
- 在 Access this host 部分中,选中指定的 Hosts and Groups 单选按钮。
- 在 Host category this rule applies to 子部分中,单击Add 来打开 将用户添加到 sudo 规则 "run_third-party-app_report" 对话框。
在 Available 栏的 Add hosts to sudo rule "run_third- party-app_report" 对话框中,选中 idmclient.idm.example.com 复选框,并将它移到 Prospective 列。
- 点 Add。
指定命令:
- 在 Run Commands 一节的 Command category the rule applies to 子小节中,选择 Specified Commands and Groups 单选按钮。
- 在 Sudo Allow Commands 子部分中,单击 Add 来打开 将允许 sudo 命令添加到 sudo 规则 "run_third-party-app_report" 对话框。
在 Available 栏的 Add allow sudo commands into sudo rule "run_third-party-app_report" 对话框中,选中
/opt/third-party-app/bin/report
并将其移到 Prospective 栏。- 单击 Add 以返回到 run_third-party-app_report 页。
指定 RunAs 用户:
- 在 As Whom 部分中,选中 Specified Users and Groups 单选按钮。
- 在 RunAs Users 子部分中,单击 Add 以将 Add RunAs 用户打开 sudo 规则 "run_third-party-app_report" 对话框。
在 Add RunAs users in sudo rule "run_third-party-app_report" 对话框中,在 External 框中输入
thirdpartyapp
服务帐户,并将它移到 Prospective 列中。- 单击 Add 以返回到 run_third-party-app_report 页。
- 单击左上角的 Save。
-
导航到 Policy
新规则默认为启用。
图 8.3. sudo 规则的详细信息
将更改从服务器传播到客户端可能需要几分钟时间。
验证
-
以
idm_user
帐户身份登录idmclient
主机。 测试新的 sudo 规则:
显示允许
idm_user
帐户执行的sudo
规则。[idm_user@idmclient ~]$ sudo -l Matching Defaults entries for idm_user@idm.example.com on idmclient: !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY KRB5CCNAME", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin User idm_user@idm.example.com may run the following commands on idmclient: (thirdpartyapp) /opt/third-party-app/bin/report
作为
thirdpartyapp
服务帐户,运行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.