20.6. 在 IdM Web UI 中创建一个 sudo 规则,该规则在 IdM 客户端上以服务帐户的身份运行命令


在 IdM 中,您可以使用 RunAs alias 配置 sudo 规则,以便以另一个用户或组身份运行 sudo 命令。例如,您可能有一个托管数据库应用的 IdM 客户端,您需要以与该应用对应的本地服务帐户运行命令。

使用此示例在 IdM Web UI 中创建一个名为 run_third-party-app_reportsudo 规则,以允许 idm_user 帐户以 idmclient 主机上 thirdpartyapp 服务账号的身份运行 /opt/third-party-app/bin/report 命令。

先决条件

  • 以 IdM 管理员身份登录。
  • 您已在 IdM 中创建 了 idm_user 的用户帐户,并通过为用户创建密码来解锁帐户。有关使用 CLI 添加新 IdM 用户的详情,请参阅使用命令行添加用户
  • idmclient 主机上没有本地的 idm_useridm_user 用户未列在本地 /etc/passwd 文件中。
  • 您有一个名为 third-party-app 的自定义应用程序安装在 idmclient 主机上。
  • third-party-app 应用程序的report 命令安装在 /opt/third-party-app/bin/report 目录中。
  • 您已创建了一个名为 thirdpartyapp 的本地服务帐户,来为 third-party-app 应用程序执行命令。

步骤

  1. /opt/third-party-app/bin/report 命令添加到 sudo 命令的 IdM 数据库:

    1. 导航到 Policy>Sudo>Sudo Commands
    2. 单击右上角的 Add,以打开 Add sudo 命令对话框。
    3. 输入命令:/opt/third-party-app/bin/report
    4. 点击 Add
  2. 使用新的 sudo 命令条目来创建新的 sudo 规则:

    1. 导航到 Policy Sudo Sudo rules
    2. 单击右上角的 Add,以打开 Add sudo 规则对话框。
    3. 输入 sudo 规则的名称:run_third-party-app_report
    4. Add and Edit
    5. 指定用户:

      1. Who 部分中,选中指定的用户和组单选按钮
      2. User 部分中,单击 Add 以打开 Add users into sudo rule "run_third-party-app_report" 对话框。
      3. Available 列中,选中 idm_user 复选框,并将它移到 Prospective 列中。
      4. 点击 Add
    6. 指定主机:

      1. Access this host 部分中,选中指定的 Hosts and Groups 单选按钮。
      2. Hosts 部分中,单击 Add 以打开 Add hosts into sudo rule "run_third-party-app_report" 对话框。
      3. Available 列中,选中 idmclient.idm.example.com 复选框,并将其移到 Prospective 列中。
      4. 点击 Add
    7. 指定命令:

      1. Run Commands 部分中,选中指定的命令和组 单选按钮。
      2. Sudo Allow Commands 部分中,单击 Add 以打开 Add allow sudo commands into sudo rule "run_third-party-app_report" 对话框。
      3. Available 列中,选中 /opt/third-party-app/bin/report 复选框,并将它移到 Prospective 列。
      4. 单击 Add 以返回到 run_third-party-app_report 页面。
    8. 指定 RunAs 用户:

      1. As Whom 部分中,选中 指定的用户和组 单选按钮。
      2. RunAs Users 部分中,单击 Add 以打开 Add RunAs users into sudo rule "run_third-party-app_report" 对话框。
      3. External 框中输入 thirdpartyapp 服务帐户,并将它移到 Prospective 列中。
      4. 单击 Add 以返回到 run_third-party-app_report 页面。
    9. 单击左上角的 Save

新规则默认为启用。

注意

将更改从服务器传播到客户端可能需要几分钟时间。

验证

  1. idm_user 帐户身份登录 idmclient 主机。
  2. 测试新的 sudo 规则:

    1. 显示允许 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
      Copy to Clipboard Toggle word wrap
    2. 作为 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.
      Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat