Red Hat Training

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

30.6. sudo ルールの変更

Web UI での sudo ルールの変更

  1. Policy Sudo SudoRules をクリックします。
  2. ルール名をクリックして、設定ページを表示します。
  3. 必要に応じて設定を変更します。設定ページによっては、ページの上部に Save ボタンを使用できます。これらのページで、ボタンをクリックして変更を確認します。
sudo ルール設定ページには、複数の設定エリアが含まれています。
全般 エリア
このエリアでは、ルールの説明と sudo 順序を変更できますsudo order フィールドは整数を受け入れ、IdM がルールを評価する順番を定義します。sudo 順序の値が大きいルールが最初に評価されます
Options エリア
このエリアでは、rules に 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 を選択します。
特定のユーザーまたはグループにのみルールを適用するには、指定したユーザーおよびグループを選択してから、以下の手順に従います。
  1. ユーザーまたはユーザーグループ一覧の上にある Add をクリックします。

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

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

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

    sudo ルールのユーザーの選択
  3. Add をクリックします。
このホストへのアクセスエリア
このエリアでは、sudo ルールが有効なホストを選択できます。これらは、ユーザーに sudo パーミッションが付与されるホストです
すべてのホストにおいてルールが有効になっていることを指定するには、Anyone を選択します。
特定のホストまたはホストグループにのみルールを適用するには、指定したホストとグループを選択してから、以下の手順に従います。
  1. ホスト 一覧の上に 追加 をクリックします。

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

    sudo ルールへのホストの追加
  2. ルールとともに追加するホストまたはホストグループを選択し、> ボタンをクリックしてProspective 列に移動します外部ホストを追加するには、外部フィールドにホストを指定し 、> 矢印 ボタンをクリックします。

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

    sudo ルールのホストの選択
  3. Add をクリックします。
Run Commands エリア
このエリアでは、sudo ルールに追加するコマンドを選択できます。ユーザーは、特定のコマンドの使用を許可または拒否するように指定できます。
ユーザーが sudo で任意のコマンドを使用できることを指定するには、任意のコマンド を選択します
特定のコマンドまたはコマンドグループとルールを関連付けるには、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 を選択します。システムの任意のグループとしてルールが実行されることを指定するには、任意のグループ を選択します
  1. ユーザー一覧にある Add をクリックします。

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

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

    図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 user category)、および --runasgroupcat (run-as グループカテゴリー)これらのオプションは、ルールをすべてのユーザー、ホスト、コマンド、run-as ユーザー、または run-as グループに関連付けるすべての値のみを受け入れます
    たとえば、すべてのユーザーが sudo_rule ルールで定義されているように sudo を使用できるように指定するには、以下を実行します。
    $ ipa sudorule-mod sudo_rule --usercat=all
    
    ルールがすでに特定のエンティティーに関連付けられている場合は、対応するすべてのカテゴリーを定義する前に削除する必要がありますたとえば、ipa sudorule-add-user コマンドを使用して sudo_rule が以前に特定のユーザーに関連付けられている場合は、最初に ipa sudorule-remove-user コマンドを使用してユーザーを削除する必要があります。
詳細と、ipa sudorule-mod で使用できるオプションの完全なリストは、--help オプションを指定してコマンドを実行します。
sudo オプションの管理
sudoers オプションを追加するには、ipa sudorule-add-option コマンドを使用します。
たとえば、file-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 _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 パーミッションが付与される場所の管理
ホストを指定するには、--hosts オプションを ipa sudorule-add-host コマンドに追加します。ホストグループを指定するには、--hostgroups オプションを ipa sudorule-add-host に追加します。
たとえば、example.com および host_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で使用できるコマンドの管理
ユーザーは、特定のコマンドの使用を許可または拒否するように指定できます。
許可されたコマンドまたはコマンドグループを指定するには、--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 オプションは、IdM sudo コマンドの追加」
sudo コマンドを実行するときの管理
コマンドを実行するアイデンティティーとしてグループの個々のユーザーまたはユーザーの UID を使用するには、ipa sudorule-add-runasuser コマンドで --users または --groups オプションを使用します。
ユーザーグループの GID をコマンドのアイデンティティーとして使用するには、ipa sudorule-add-runasgroup --groups コマンドを使用します。
ユーザーまたはグループを指定しないと、sudo コマンドは root で実行します。
たとえば、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
    

このページには機械翻訳が使用されている場合があります (詳細はこちら)。