Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

30.6. sudo ルールの変更

Web UI での sudo ルールの変更

  1. Policy タブで SudoRules をクリックします。
  2. ルールの名前をクリックして、設定ページを表示します。
  3. 必要に応じて設定を変更します。設定ページによっては、ページの上部に Save ボタンを使用できます。これらのページで、ボタンをクリックして変更を確認します。
sudo ルールの設定ページには、複数の設定エリアが含まれます。
General エリア
このエリアでは、ルールの説明と sudo 順序 を変更できます。sudo order フィールドは整数を受け入れ、IdM がルールを評価する順番を定義します。最も高い sudo 順序 値を持つルールが最初に評価されます。
Options 領域
このエリアでは、sudoers オプションをルールに追加できます。
  1. オプション一覧の上にある 追加 をクリックします。

    図30.5 sudo オプションの追加

    sudo オプションの追加
  2. sudoers オプションを入力します。たとえば、sudo がユーザーを認証するよう要求しない場合は、!authenticate オプションを追加します。

    図30.6 sudoers オプションの入力

    sudoers オプションの入力
    sudoers オプションの詳細は、sudoers(5) の man ページを参照してください。
  3. Add をクリックします。
Who エリア
このエリアでは、sudo ルールが適用されるユーザーまたはユーザーグループを選択できます。これらのユーザーは、ルールで定義されているように sudo を使用する権利があります。
すべてのシステムユーザーがルールで定義されているように sudo を使用できるようにするには、Anyone を選択します。
ルールを特定のユーザーまたはグループのみに適用するには、Specified Users and Groups を選択し、以下の手順に従います。
  1. ユーザーまたはユーザーグループリストの上にある 追加 をクリックします。

    図30.7 sudo ルールへのユーザーの追加

    sudo ルールへのユーザーの追加
  2. ルールに追加するユーザーまたはユーザーグループを選択し、> ボタンをクリックして Prospective コラムに移動します。外部ユーザーを追加するには、External フィールドでユーザーを指定してから、> の矢印アイコンをクリックします。

    図30.8 sudo ルールのユーザーの選択

    sudo ルールのユーザーの選択
  3. Add をクリックします。
Access This Host エリア
このエリアでは、sudo ルールが有効なホストを選択できます。これらは、ユーザーに sudo パーミッションが付与されるホストです。
すべてのホストでルールが有効になるように指定するには、Anyone を選択します。
ルールを特定のホストまたはホストグループのみに適用するには、Specified Hosts and Groups を選択し、以下の手順に従います。
  1. ホストリストの上にある 追加 をクリックします。

    図30.9 ホストの sudo ルールへの追加

    ホストの sudo ルールへの追加
  2. ルールに追加するホストまたはホストグループを選択し、> の矢印ボタンをクリックして Prospective コラムに移動します。外部ホストを追加するには、External フィールドでホストを指定してから、> の矢印アイコンをクリックします。

    図30.10 sudo ルールのホストの選択

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

    図30.11 sudo ルールへのコマンドの追加

    sudo ルールへのコマンドの追加
  2. ルールに追加するコマンドまたはコマンドグループを選択し、> の矢印ボタンをクリックして Prospective コラムに移動します。

    図30.12 sudo ルールのコマンドの選択

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

    図30.13 特定のユーザーとしてコマンドを実行する sudo ルールの設定

    特定のユーザーとしてコマンドを実行する sudo ルールの設定
  2. 必要なユーザーまたはグループを選択し、> の矢印ボタンを使用して Prospective 列に移動します。外部エンティティーを追加するには、External フィールドで指定して > の矢印ボタンをクリックします。

    図30.14 コマンドのユーザーの選択

    コマンドのユーザーの選択
  3. 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_ruleipa 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_groupfiles-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 オプションを追加します。ホストグループを指定するには、--hostgroupsipa sudorule-add-host に追加します。
たとえば、example.comhost_groupfiles-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 ですべてのコマンドを使用できるようにするには、以下の手順を実行します。
  1. admin ユーザーまたは sudo ルールの管理を許可されている他のユーザー用に Kerberos チケットを取得します。
    $ kinit admin
    Password for admin@EXAMPLE.COM:
    
  2. 新規 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
    
  3. 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
    -------------------------
    
  4. 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
    -------------------------
    
  5. 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
    
  6. sudo コマンドを root として実行するには、run-as ユーザーまたはグループを指定しないでください。
  7. 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
    
  8. 新規の 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