4.4. 使用 IdM API 命令管理 sudo 规则


以下示例显示了如何使用 IdM API 命令管理 sudo 规则的常见场景。

使用 IdM API 命令管理 sudo 规则的示例

创建 sudo 规则

在本例中,您可以创建一个保持时间更改命令的 sudo 规则。

api.Command.sudorule_add("timechange")
创建 sudo 命令

在本例中,您创建 date sudo 命令。

api.Command.sudocmd_add("/usr/bin/date")
将 sudo 命令附加到 sudo 规则

在本例中,您要将 date sudo 命令附加到 timechange sudo 规则。

api.Command.sudorule_add_allow_command("timechange", sudocmd="/usr/bin/date")
创建并附加 sudo 命令组

在本例中,您创建多个 sudo 命令,将它们添加到新创建的 timecmds sudo 命令组中,并将组附加到 timechange sudo 规则。

api.Command.sudocmd_add("/usr/bin/date")
api.Command.sudocmd_add("/usr/bin/timedatectl")
api.Command.sudocmd_add("/usr/sbin/hwclock")
api.Command.sudocmdgroup_add("timecmds")
api.Command.sudocmdgroup_add_member("timecmds", sudocmd="/usr/bin/date")
api.Command.sudocmdgroup_add_member("timecmds", sudocmd="/usr/bin/timedatectl")
api.Command.sudocmdgroup_add_member("timecmds", sudocmd="/usr/sbin/hwclock")
api.Command.sudorule_add_allow_command("timechange", sudocmdgroup="timecmds")
拒绝 sudo 命令

在本例中,您拒绝要作为 sudo 运行的 rm 命令。

api.Command.sudocmd_add("/usr/bin/rm")
api.Command.sudorule_add_deny_command("timechange", sudocmd="/usr/bin/rm")
将用户添加到 sudo 规则

在这个示例中,您将用户 bob 添加到 timechange sudo 规则中。

api.Command.sudorule_add_user("timechange", user="bob")
使 sudo 规则仅对指定的主机可用

在本例中,您将 timechange 规则限制为仅对 client.ipa.test 主机可用。

api.Command.sudorule_add_host("timechange", host="client.ipa.test")
将 sudo 规则设置为以不同用户身份运行

默认情况下,sudo 规则以 root 用户身份运行。在本例中,您将 timechange sudo 规则设置为以 alice 用户身份运行。

api.Command.sudorule_add_runasuser("timechange", user="alice")
将 sudo 规则设置为以组身份运行

在本例中,您将 timechange sudo 规则设置为以 sysadmins 组身份运行。

api.Command.sudorule_add_runasgroup("timechange", group="sysadmins")
为 sudo 规则设置 sudo 选项

在本例中,您为 timechange sudo 规则设置 sudo 选项。

api.Command.sudorule_add_option("timechange", ipasudoopt="logfile='/var/log/timechange_log'")
启用 sudo 规则

在本例中,您启用 timechange sudo 规则。

api.Command.sudorule_enable("timechange")
禁用 sudo 规则

在本例中,您禁用 timechange sudo 规则。

api.Command.sudorule_disable("timechange")
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.