4.4. 使用 IdM API 命令管理 sudo 规则
以下示例显示了如何使用 IdM API 命令管理 sudo 规则的常见场景。
使用 IdM API 命令管理 sudo 规则的示例
- 创建 sudo 规则
在本例中,您可以创建一个保持时间更改命令的 sudo 规则。
api.Command.sudorule_add("timechange")- 创建 sudo 命令
在本例中,您创建
datesudo 命令。api.Command.sudocmd_add("/usr/bin/date")- 将 sudo 命令附加到 sudo 规则
在本例中,您要将
datesudo 命令附加到timechangesudo 规则。api.Command.sudorule_add_allow_command("timechange", sudocmd="/usr/bin/date")- 创建并附加 sudo 命令组
在本例中,您创建多个 sudo 命令,将它们添加到新创建的
timecmdssudo 命令组中,并将组附加到timechangesudo 规则。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添加到timechangesudo 规则中。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用户身份运行。在本例中,您将timechangesudo 规则设置为以alice用户身份运行。api.Command.sudorule_add_runasuser("timechange", user="alice")- 将 sudo 规则设置为以组身份运行
在本例中,您将
timechangesudo 规则设置为以sysadmins组身份运行。api.Command.sudorule_add_runasgroup("timechange", group="sysadmins")- 为 sudo 规则设置 sudo 选项
在本例中,您为
timechangesudo 规则设置 sudo 选项。api.Command.sudorule_add_option("timechange", ipasudoopt="logfile='/var/log/timechange_log'")- 启用 sudo 规则
在本例中,您启用
timechangesudo 规则。api.Command.sudorule_enable("timechange")- 禁用 sudo 规则
在本例中,您禁用
timechangesudo 规则。api.Command.sudorule_disable("timechange")