30.6. sudo ルールの変更
Web UI での sudo ルールの変更
- Policy タブで
をクリックします。 - ルールの名前をクリックして、設定ページを表示します。
- 必要に応じて設定を変更します。設定ページによっては、ページの上部に ボタンを使用できます。これらのページで、ボタンをクリックして変更を確認します。
sudo ルールの設定ページには、複数の設定エリアが含まれます。
- General エリア
- このエリアでは、ルールの説明と
sudo 順序を変更できます。sudo orderフィールドは整数を受け入れ、IdM がルールを評価する順番を定義します。最も高いsudo 順序値を持つルールが最初に評価されます。 - Options 領域
- このエリアでは、
sudoersオプションをルールに追加できます。- オプションリストの上にある 追加 をクリックします。
図30.5
sudoオプションの追加
sudoersオプションを入力します。たとえば、sudoがユーザーを認証するよう要求しない場合は、!authenticateオプションを追加します。図30.6
sudoersオプションの入力
sudoersオプションの詳細は、sudoers(5) の man ページを参照してください。- をクリックします。
- Who エリア
- このエリアでは、
sudoルールが適用されるユーザーまたはユーザーグループを選択できます。これらのユーザーは、ルールで定義されているようにsudoを使用する権利があります。すべてのシステムユーザーがルールで定義されているようにsudoを使用できるようにするには、Anyone を選択します。ルールを特定のユーザーまたはグループのみに適用するには、Specified Users and Groups を選択し、以下の手順に従います。- ユーザーまたはユーザーグループリストの上にある 追加 をクリックします。
図30.7
sudoルールへのユーザーの追加
- ルールに追加するユーザーまたはユーザーグループを選択し、 ボタンをクリックして Prospective コラムに移動します。外部ユーザーを追加するには、External フィールドでユーザーを指定してから、 の矢印アイコンをクリックします。
図30.8
sudoルールのユーザーの選択
- をクリックします。
- Access This Host エリア
- このエリアでは、
sudoルールが有効なホストを選択できます。これらは、ユーザーにsudoパーミッションが付与されるホストです。すべてのホストでルールが有効になるように指定するには、Anyone を選択します。ルールを特定のホストまたはホストグループのみに適用するには、Specified Hosts and Groups を選択し、以下の手順に従います。- ホストリストの上にある 追加 をクリックします。
図30.9 ホストの
sudoルールへの追加
- ルールに追加するホストまたはホストグループを選択し、 の矢印ボタンをクリックして Prospective コラムに移動します。外部ホストを追加するには、External フィールドでホストを指定してから、 の矢印アイコンをクリックします。
図30.10
sudoルールのホストの選択
- をクリックします。
- Run Commands エリア
- このエリアでは、
sudoルールに追加するコマンドを選択できます。特定のコマンドの使用を許可または拒否するように指定できます。ユーザーがsudoで任意のコマンドを使用できることを指定するには、Any Command を選択します。ルールを特定のコマンドまたはコマンドグループに関連付けるには、Specified Commands and Groups を選択して、以下の手順に従います。- いずれかの ボタンをクリックして、コマンドまたはコマンドグループを追加します。使用できるコマンドまたはコマンドグループを指定するには、Allow エリアを使用します。拒否されたコマンドまたはコマンドグループを指定するには、Deny エリアを使用します。
図30.11
sudoルールへのコマンドの追加
- ルールに追加するコマンドまたはコマンドグループを選択し、 の矢印ボタンをクリックして Prospective コラムに移動します。
図30.12
sudoルールのコマンドの選択
- をクリックします。
- As Whom エリア
- このエリアでは、指定のコマンドを特定の root 以外のユーザーとして実行するように
sudoルールを設定することができます。RunAs ユーザーのグループを追加すると、そのグループのメンバーの UID を使用してコマンドが実行されることに注意してください。RunAs グループを追加すると、そのグループの GID を使用してコマンドが実行されます。ルールがシステム上の任意のユーザーとして実行されるように指定するには、Anyone を選択します。ルールがシステム上の任意のグループとして実行されるように指定するには、Any Group を選択します。- ユーザーリストの上にある 追加 をクリックします。
図30.13 特定のユーザーとしてコマンドを実行する
sudoルールの設定
- 必要なユーザーまたはグループを選択し、 の矢印ボタンを使用して Prospective 列に移動します。外部エンティティーを追加するには、External フィールドで指定して の矢印ボタンをクリックします。
図30.14 コマンドのユーザーの選択
- をクリックします。
コマンドラインでの sudo ルールの変更
IdM コマンドラインユーティリティーを使用すると、複数の
sudo ルール領域を設定できます。
- 一般的な
sudoルール管理 sudoルールの一般的な設定を変更するには、ipa sudorule-mod コマンドを使用します。コマンドで使用できる最も一般的なオプションは次のとおりです。sudoルールの説明を変更する--descオプション以下に例を示します。$ 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 グループカテゴリー)このオプションは、ルールをすべてのユーザー、ホスト、コマンド、run-as ユーザー、または run-as グループに関連付けるallの値のみを受け入れます。たとえば、すべてのユーザーが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 コマンドを使用します。たとえば、ファイル-コマンド規則に基づく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を使用するパーミッションを付与されているユーザーの管理- 個々のユーザーを指定するには、ipa sudorule-add-user コマンドに
--usersオプションを追加します。ユーザーグループを指定するには、--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パーミッションが付与される場所の管理 - ホストを指定するには、ipa sudorule-add-host コマンドに
--hostsオプションを追加します。ホストグループを指定するには、--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で使用可能なコマンドの管理- 特定のコマンドの使用を許可または拒否するように指定できます。許可されたコマンドまたはコマンドグループを指定するには、ipa sudorule-add-allow-commandに
--sudocmdsオプションまたは--sudocmdgroupsオプションを追加します。拒否されたコマンドまたはコマンドグループを指定するには、ipa sudorule-add-deny-command コマンドに--sudocmdsオプションまたは--sudocmdgroupsオプションを追加します。たとえば、ファイル-コマンドルールで許可されているように/usr/bin/lessコマンドとファイルコマンドグループを追加するには、次のコマンドを実行します。$ 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コマンドを実行するための管理- 個々のユーザーまたはユーザーの UID を、コマンドを実行する ID として使用するには、ipa sudorule-add-runasuser コマンドに
--usersオプションまたは--groupsオプションを指定します。ユーザーグループの GID をコマンドの ID として使用するには、ipa sudorule-add-runasgroup --groups コマンドを使用します。ユーザーまたはグループを指定しないと、sudoコマンドが root で実行されます。たとえば、ユーザーの ID を使用して、sudoルールでコマンドを実行するように指定する場合は、次のコマンドを実行します。$ ipa sudorule-add-runasuser files-commands --users=user ... RunAs Users: user ...
ipa sudorule-* コマンドの詳細は、ipa help sudorule コマンドの出力を参照するか、
--help オプションを追加して特定のコマンドを実行してください。
例30.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