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 コマンドを拒否する
この例では、
rmコマンドが sudo として実行されることを拒否します。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として実行されます。この例では、代わりにaliceユーザーとして実行されるようにtimechangesudo ルールを設定します。api.Command.sudorule_add_runasuser("timechange", user="alice")- sudo ルールをグループとして実行するように設定する
この例では、
sysadminsグループとして実行されるようにtimechangesudo ルールを設定します。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")