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