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")