Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
30.6. sudo ルールの変更
Web UI での sudo
ルールの変更
- Policy タブで Sudo → Rules をクリックします。
- ルールの名前をクリックして、設定ページを表示します。
- 必要に応じて設定を変更します。設定ページによっては、ページの上部に Save ボタンを使用できます。これらのページで、ボタンをクリックして変更を確認します。
sudo
ルールの設定ページには、複数の設定エリアが含まれます。
- General エリア
- このエリアでは、ルールの説明と
sudo 順序
を変更できます。sudo order
フィールドは整数を受け入れ、IdM がルールを評価する順番を定義します。最も高いsudo 順序
値を持つルールが最初に評価されます。 - Options 領域
- このエリアでは、
sudoers
オプションをルールに追加できます。- オプションリストの上にある 追加 をクリックします。
図30.5
sudo
オプションの追加 sudoers
オプションを入力します。たとえば、sudo
がユーザーを認証するよう要求しない場合は、!authenticate
オプションを追加します。図30.6
sudoers
オプションの入力sudoers
オプションの詳細は、sudoers(5) の man ページを参照してください。- Add をクリックします。
- Who エリア
- このエリアでは、
sudo
ルールが適用されるユーザーまたはユーザーグループを選択できます。これらのユーザーは、ルールで定義されているようにsudo
を使用する権利があります。すべてのシステムユーザーがルールで定義されているようにsudo
を使用できるようにするには、Anyone を選択します。ルールを特定のユーザーまたはグループのみに適用するには、Specified Users and Groups を選択し、以下の手順に従います。- ユーザーまたはユーザーグループリストの上にある 追加 をクリックします。
図30.7
sudo
ルールへのユーザーの追加 - ルールに追加するユーザーまたはユーザーグループを選択し、> ボタンをクリックして Prospective コラムに移動します。外部ユーザーを追加するには、External フィールドでユーザーを指定してから、> の矢印アイコンをクリックします。
図30.8
sudo
ルールのユーザーの選択 - Add をクリックします。
- Access This Host エリア
- このエリアでは、
sudo
ルールが有効なホストを選択できます。これらは、ユーザーにsudo
パーミッションが付与されるホストです。すべてのホストでルールが有効になるように指定するには、Anyone を選択します。ルールを特定のホストまたはホストグループのみに適用するには、Specified Hosts and Groups を選択し、以下の手順に従います。- ホストリストの上にある 追加 をクリックします。
図30.9 ホストの
sudo
ルールへの追加 - ルールに追加するホストまたはホストグループを選択し、> の矢印ボタンをクリックして Prospective コラムに移動します。外部ホストを追加するには、External フィールドでホストを指定してから、> の矢印アイコンをクリックします。
図30.10
sudo
ルールのホストの選択 - Add をクリックします。
- Run Commands エリア
- このエリアでは、
sudo
ルールに追加するコマンドを選択できます。特定のコマンドの使用を許可または拒否するように指定できます。ユーザーがsudo
で任意のコマンドを使用できることを指定するには、Any Command を選択します。ルールを特定のコマンドまたはコマンドグループに関連付けるには、Specified Commands and Groups を選択して、以下の手順に従います。- いずれかの Add ボタンをクリックして、コマンドまたはコマンドグループを追加します。使用できるコマンドまたはコマンドグループを指定するには、Allow エリアを使用します。拒否されたコマンドまたはコマンドグループを指定するには、Deny エリアを使用します。
図30.11
sudo
ルールへのコマンドの追加 - ルールに追加するコマンドまたはコマンドグループを選択し、> の矢印ボタンをクリックして Prospective コラムに移動します。
図30.12
sudo
ルールのコマンドの選択 - Add をクリックします。
- As Whom エリア
- このエリアでは、指定のコマンドを特定の root 以外のユーザーとして実行するように
sudo
ルールを設定することができます。RunAs ユーザーのグループを追加すると、そのグループのメンバーの UID を使用してコマンドが実行されることに注意してください。RunAs グループを追加すると、そのグループの GID を使用してコマンドが実行されます。ルールがシステム上の任意のユーザーとして実行されるように指定するには、Anyone を選択します。ルールがシステム上の任意のグループとして実行されるように指定するには、Any Group を選択します。- ユーザーリストの上にある 追加 をクリックします。
図30.13 特定のユーザーとしてコマンドを実行する
sudo
ルールの設定 - 必要なユーザーまたはグループを選択し、> の矢印ボタンを使用して Prospective 列に移動します。外部エンティティーを追加するには、External フィールドで指定して > の矢印ボタンをクリックします。
図30.14 コマンドのユーザーの選択
- Add をクリックします。
コマンドラインでの 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
コマンド使用時にユーザー認証が要求されないようにするには、!authenticate
sudoers
を追加します。$ 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