29.6. sudo ルールの修正
Web UI での sudo ルールの修正
- Policy タブで → をクリックします。
- 設定ページを表示するルールの名前をクリックします。
- 必要に応じて設定を変更します。ページによっては上部に ボタンがあるものもあります。その場合は、このボタンをクリックして変更を保存します。
sudo ルールの設定ページには、以下の設定エリアがあります。
- General エリア
- このエリアでは、ルールの説明と
sudo orderを修正します。sudo orderフィールドには、IdM がルールを評価する順番を整数で入力します。sudo orderの値の最も高いルールが最初に評価されます。 - Options エリア
- このエリアでは、
sudoersオプションをルールに追加します。- オプション一覧の上部にある Add をクリックします。

図29.5
sudoオプションの追加 sudoersオプションを入力します。たとえば、sudoでユーザー認証が要求されないようにするには、!authenticateを追加します。
図29.6
sudoersオプションの追加sudoersオプションの詳細情報については、sudoers(5) man ページを参照してください。- をクリックします。
- Who エリア
- このエリアでは、
sudoルールが適用されるユーザーまたはユーザーグループを選択します。これらのユーザーは、ルールで定義されたようにsudoを使用することができます。すべてのシステムユーザーがルールで定義したようにsudoを使用出来るようにするには、Anyone を選択します。ルールを特定のユーザーまたはグループのみに適用するには、Specified Users and Groups を選択して、以下のステップに従います。- ユーザーまたはユーザーグループ一覧上部にある Add をクリックします。

図29.7
sudoルールへのユーザーの追加 - ルールに追加するユーザーまたはユーザーグループを選択し、 ボタンをクリックして Prospective コラムに移動します。外部ユーザーを追加する場合には External フィールドでユーザーを指定してから ボタンをクリックします。

図29.8
sudoルール向けにユーザーを選択する - をクリックします。
- Access This Host エリア
- このエリアでは、
sudoルールを有効にするホストを選択します。これは、ユーザーにsudoパーミッションが付与されるホストになります。全ホストでルールを有効にするには、Anyone を選択します。ルールを特定のホストまたはホストグループのみに適用するには、Specified Hosts and Groups を選択して、以下のステップに従います。- ホスト一覧の上部にある Add をクリックします。

図29.9
sudoルールへのホストの追加 - ルールに含めるホストまたはホストグループを選択し、 ボタンをクリックして Prospective コラムに移動します。外部ホストを追加する場合には External フィールドでユーザーを指定してから ボタンをクリックします。

図29.10
sudoルール用のホスト選択 - をクリックします。
- Run Commands エリア
- このエリアでは、
sudoルールに含めるコマンドを選択します。特定コマンドの使用をユーザーに許可する、もしくは拒否することを指定できます。ユーザーがsudoですべてのコマンドを使用できるようにするには、Any Command を選択します。ルールを特定のコマンドまたはコマンドグループに関連付けるには、Specified Commands and Groups を選択して、以下のステップに従います。- いずれかの ボタンをクリックして、コマンドまたはコマンドグループを追加します。許可するコマンドまたはコマンドグループを指定するには、Allow エリアを使用します。拒否するコマンドまたはコマンドグループを指定するには Deny エリアを使用します。

図29.11
sudoルールへのコマンドの追加 - ルールに含めるコマンドまたはコマンドグループを選択し、 ボタンをクリックして Prospective コラムに移動させます。

図29.12
sudoルール向けにコマンドを選択する - をクリックします。
- As Whom エリア
- このエリアでは、特定の root 以外のユーザーとして特定コマンドを実行するよう
sudoを設定します。RunAs users のグループを追加すると、そのグループのメンバーの UID がそのコマンドの実行に使用されることに注意してください。また、RunAs group を追加すると、コマンドの実行にそのグループの GID が使用されます。システム上のいずれのユーザーとしてルールを実行できるようにするには、Anyone を選択します。システム上のいずれのグループとしてルールを実行できるようにするには、Any Group を選択します。- ユーザー一覧上部にある Add をクリックします。

図29.13 特定ユーザーとしてコマンドを実行する
sudoルールの設定 - ユーザーまたはグループを選択し、 ボタンをクリックして Prospective コラムに移動させます。外部のエンティティーを追加する場合には External フィールドで指定してから ボタンをクリックします。

図29.14 コマンドのユーザー選択
- をクリックします。
コマンドラインからの sudo ルールの修正
sudo ルールエリアを設定できます。
- 全般的
sudoルールの管理 sudoルールの全般的設定を変更するには、ipa sudorule-modコマンドを使用します。よく使用されるオプションには、以下のものがあります。--descオプションでは、以下のようにsudoルールの説明を変更します。$ ipa sudorule-mod sudo_rule_name --desc="sudo_rule_description"
--orderオプションでは、以下のように指定されたルールの順序を定義します。$ ipa sudorule-mod sudo_rule_name --order=3
- エンティティーのカテゴリーは以下のオプションで指定します:
--usercat(ユーザーカテゴリー)、--hostcat(ホストカテゴリー)、--cmdcat(コマンドカテゴリー)、--runasusercat(run-as ユーザーカテゴリー)、および--runasgroupcat(run-as グループカテゴリー)。これらのオプションではすべてallの値を使用することが可能で、その場合は該当ルールをすべてのユーザー、ホスト、コマンド、run-as ユーザー、もしくは run-as グループに関連付けます。たとえば、sudo_ruleルールで定義したsudoを全ユーザーが使用できるように指定するには、以下を実行します。$ ipa sudorule-mod sudo_rule --usercat=all
ルールが既に特定エンティティーと関連付けられている場合は、この関連付けを解除してからそのエンティティーに対応するallカテゴリーを定義する必要があります。たとえば、sudo_ruleがipa sudorule-add-userコマンドを使用して特定のユーザーと関連付けられている場合は、まずipa sudorule-remove-userコマンドを使ってこのユーザーを削除する必要があります。
ipa sudorule-modで使用可能なオプションの完全一覧と詳細情報については、コマンドに--helpオプションを追加して実行してください。sudoオプションの管理sudoersオプションを追加するには、ipa sudorule-add-optionコマンドを使用します。たとえば、files-commandsルールをベースとしたsudoを使用するユーザーの認証を不要とするには、!authenticateオプションを使用します。$ ipa sudorule-add-option files-commands Sudo Option: !authenticate --------------------------------------------------------- Added option "!authenticate" to Sudo Rule "files-commands" ---------------------------------------------------------
sudoersオプションの詳細情報については、sudoers(5) man ページを参照してください。sudoersオプションを削除するには、以下のようにipa sudorule-remove-optionコマンドを使用します。$ ipa sudorule-remove-option files-commands Sudo Option: authenticate ------------------------------------------------------------- Removed option "authenticate" from Sudo Rule "files-commands" -------------------------------------------------------------
sudo使用のパーミッション付与の管理- 個別ユーザーを指定するには、
--usersオプションをipa sudorule-add-userコマンドで使用します。ユーザーグループを指定するには、--groupsオプションをipa sudorule-add-userに追加します。たとえば、userとuser_groupをfiles-commandsルールに追加するには、以下のコマンドを実行します。$ ipa sudorule-add-user files-commands --users=user --groups=user_group ... ------------------------- Number of members added 2 -------------------------
個別のユーザーもしくはグループを削除するには、以下のようにipa sudorule-remove-userを使用します。$ ipa sudorule-remove-user files-commands [member user]: user [member group]: ... --------------------------- Number of members removed 1 ---------------------------
- ユーザーに
sudoパーミッションを付与する場所の管理 - ホストを指定するには、
--hostsオプションをipa sudorule-add-hostコマンドで使用します。ホストグループを指定するには、--hostgroupsオプションをipa sudorule-add-hostに追加します。たとえば、example.comとhost_groupをfiles-commandsルールに追加するには、以下のコマンドを実行します。$ ipa sudorule-add-host files-commands --hosts=example.com --hostgroups=host_group ... ------------------------- Number of members added 2 -------------------------
ホストまたはホストグループを削除するには、以下のようにipa sudorule-remove-hostコマンドを使用します。$ ipa sudorule-remove-host files-commands [member host]: example.com [member host group]: ... --------------------------- Number of members removed 1 ---------------------------
sudoと使用するコマンドの管理- 特定コマンドの使用をユーザーに許可する、もしくは拒否することを指定できます。許可するコマンドもしくはコマンドグループを指定するには、
--sudocmdsまたは--sudocmdgroupsオプションをipa sudorule-add-allow-commandに追加します。拒否するコマンドもしくはコマンドグループを指定するには、--sudocmdsまたは--sudocmdgroupsオプションをipa sudorule-add-deny-commandコマンドに追加します。たとえば、/usr/bin/lessコマンドとfilesコマンドグループを許可するものとしてfiles-commandsルールに追加するには、以下のコマンドを実行します。$ ipa sudorule-add-allow-command files-commands --sudocmds=/usr/bin/less --sudocmdgroups=files ... ------------------------- Number of members added 2 -------------------------
コマンドまたはコマンドグループをルールから削除するには、以下のようにipa sudorule-remove-allow-commandまたはipa sudorule-remove-deny-commandコマンドを実行します。$ ipa sudorule-remove-allow-command files-commands [member sudo command]: /usr/bin/less [member sudo command group]: ... --------------------------- Number of members removed 1 ---------------------------
--sudocmdsオプションは 「sudoコマンドの追加」 にあるように、IdM に追加されたコマンドしか受け付けないことに注意してください。 sudoコマンドの実行者の ID 管理- 個別ユーザーもしくはグループ内のユーザーの UID をコマンド実行時の ID として使用するには、
--usersまたは--groupsオプションをipa sudorule-add-runasuserコマンドで使用します。ユーザーグループの GID をコマンド実行時の ID として使用するには、ipa sudorule-add-runasgroup --groupsコマンドを使用します。ユーザーやグループを指定しない場合は、sudoコマンドは root として実行されます。たとえば、userの ID を使用してsudoルール内のコマンドを実行するように指定するには、以下を実行します。$ ipa sudorule-add-runasuser files-commands --users=user ... RunAs Users: user ...
ipa sudorule-* コマンドの詳細については、ipa help sudorule コマンドの出力を確認するか、各コマンドに --help オプションを追加して実行します。
例29.1 コマンドラインからの新規 sudo ルール追加および修正
sudo ですべてのコマンドを使用できるようにするには、以下の手順を実行します。
adminユーザーまたはsudoルールの管理を許可されている他のユーザー用に Kerberos チケットを取得します。$ kinit admin Password for admin@EXAMPLE.COM:
- 新規
sudoルールを IdM に追加します。$ ipa sudorule-add new_sudo_rule --desc="Rule for user_group" --------------------------------- Added Sudo Rule "new_sudo_rule" --------------------------------- Rule name: new_sudo_rule Description: Rule for user_group Enabled: TRUE
- who を定義します。
sudoルールの使用が許可されるユーザーのグループを指定します。$ ipa sudorule-add-user new_sudo_rule --groups=user_group Rule name: new_sudo_rule Description: Rule for user_group Enabled: TRUE User Groups: user_group ------------------------- Number of members added 1 -------------------------
- where を定義します。ユーザーに
sudoパーミッションが付与されるホストのグループを指定します。$ ipa sudorule-add-host new_sudo_rule --hostgroups=host_group Rule name: new_sudo_rule Description: Rule for user_group Enabled: TRUE User Groups: user_group Host Groups: host_group ------------------------- Number of members added 1 -------------------------
- what を定義します。どの
sudoコマンドもユーザーが実行することを許可するには、allコマンドカテゴリーをルールに追加します。$ ipa sudorule-mod new_sudo_rule --cmdcat=all ------------------------------ Modified Sudo Rule "new_sudo_rule" ------------------------------ Rule name: new_sudo_rule Description: Rule for user_group Enabled: TRUE Command category: all User Groups: user_group Host Groups: host_group
sudoコマンドを root として実行するには、run-as ユーザーまたはグループを指定しないでください。sudoコマンド使用時にユーザー認証が要求されないようにするには、!authenticatesudoersを追加します。$ ipa sudorule-add-option new_sudo_rule Sudo Option: !authenticate ----------------------------------------------------- Added option "!authenticate" to Sudo Rule "new_sudo_rule" ----------------------------------------------------- Rule name: new_sudo_rule Description: Rule for user_group Enabled: TRUE Command category: all User Groups: user_group Host Groups: host_group Sudo Option: !authenticate
- 新規の
sudoルール設定を表示して、内容を確認します。$ ipa sudorule-show new_sudo_rule Rule name: new_sudo_rule Description: Rule for user_group Enabled: TRUE Command category: all User Groups: user_group Host Groups: host_group Sudo Option: !authenticate

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.