目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Linux Enterprise High Availabilityのドキュメント / 管理ガイド / 付録 / rootアクセスなしでのクラスタレポートの実行
適用項目 SUSE Linux Enterprise High Availability 15 SP6

D rootアクセスなしでのクラスタレポートの実行

すべてのクラスタノードはSSHによって互いにアクセスできる必要があります。crm report (トラブルシューティング用)などのツールおよびHawk2の履歴エクスプローラーは、ノード間でパスワード不要のSSHアクセスを必要とします。それがない場合、現在のノードからしかデータを収集できません。

セキュリティポリシーでパスワード不要のroot SSHログインが許可されていない場合、crm reportrootとして実行すると、すべてのリモートノードで失敗します。この場合、次のオプションのいずれかを使用すればクラスタレポートを実行できます。

  • クラスタがsudo特権を持つ非rootユーザによって初期化された場合、このユーザはクラスタレポートを実行できます。

  • クラスタがrootユーザによって初期化された場合、専用の非rootユーザを作成してクラスタレポートを実行できます。

次の手順では、非rootユーザに限定的な特権を付与し、sudoを使用してcrm reportを実行できるが、その他のsudoアクセスを許可しないようにする方法について説明しています。

D.1 非rootユーザに限定的なsudo特権を設定する

sudoコマンドは、通常のユーザを素早くrootにしてコマンドを発行できるようにします。パスワードの入力は、必要な場合と不要な場合があります。すべてのルートレベルのコマンドにsudoアクセスを付与することも、特定のコマンドにのみ付与することもできます。この手順は、クラスタレポートを実行するために必要な特定のコマンドに対してのみsudo特権を設定する方法を説明しています。一般的には、sudoはエイリアスを使用してコマンド文字列全体を定義します。

sudoを設定するには、visudo (viでは「ありません」)またはYaSTを使用します。

警告
警告: viは使用しない

コマンドラインからsudoを設定するには、rootを使用して、visudoとしてsudoersファイルを編集する必要があります。他のエディタを使用すると、構文エラーやファイルパーミッションエラーが発生し、sudoを実行できないことがあります。

要件
  • sudo特権を持っていない非rootユーザ。次の手順では、hareportというサンプルユーザを使用します。

  • ユーザhareportは、クラスタ内にあるすべてのノードに存在しています。

  • ユーザhareportは、パスワード不要のSSHを使用してクラスタ内のその他すべてのノードにアクセスできます。

手順 D.1: 非rootユーザに限定的なsudo特権を設定する
  1. rootとしてログインします。

  2. /etc/sudoersファイルを開くには、visudoを入力します。

  3. 次のカテゴリを探します: Host alias specificationUser alias specificationCmnd alias specification、およびRunas alias specification

  4. 次のエントリを/etc/sudoers内のそれぞれのカテゴリに追加します。

    Host_Alias	CLUSTER = alice,bob,charlie 1
    User_Alias HA = hareport 2
    Cmnd_Alias HA_ALLOWED = /bin/su, /usr/sbin/crm report*3
    Runas_Alias R = root 4

    1

    ホストエイリアスは、sudoユーザがコマンド発行権利を持つサーバ(またはサーバの範囲)を定義します。ホストエイリアスでは、DNS名またはIPアドレスを使用するか、ネットワーク範囲全体を指定できます(例: 172.17.12.0/24)。アクセスの範囲を制限するには、クラスタノードのホスト名のみを指定する必要があります。

    2

    ユーザエイリアスでは、複数のローカルユーザアカウントを1つのエイリアスに追加できます。ただし、ここでは使用されているアカウントは1つのみです。

    3

    コマンドエイリアスは、ユーザが実行できるコマンドを定義します。これは、非rootユーザがsudoを使用する際にアクセスできるコマンドを制限する場合に便利です。ここでは、hareportユーザアカウントは、コマンドcrm reportおよびsuにアクセスする必要があります。

    4

    runasエイリアスは、コマンドの実行に使用するアカウントを指定します。ここではrootです。

  5. 次の2行を検索します。

    Defaults targetpw
    ALL     ALL=(ALL) ALL

    これらは、作成したい設定と衝突するため、無効にします。

    #Defaults targetpw
    #ALL     ALL=(ALL) ALL
  6. User privilege specification categoryを探します。上のエイリアスを定義したら、そこに次のルールを追加できます。

    HA	CLUSTER = (R) NOPASSWD:HA_ALLOWED

    NOPASSWORDオプションは、ユーザhareportがパスワードを入力せずにクラスタレポートを実行できるようにします。

  7. (オプション) ユーザhareportがローカルSSHキーを使用してクラスタレポートを実行できるようにするには、Defaults specificationカテゴリに次の行を追加します。これにより、SSHエージェントの転送に必要なSSH_AUTH_SOCK環境変数が維持されます。

    Defaults!HA_ALLOWED env_keep+=SSH_AUTH_SOCK

    ssh -Aコマンドを使用してユーザhareportとしてノードにログインし、sudoを使用してcrm reportを実行すると、認証のためにローカルSSHキーがノードに渡されます。

重要
重要: 各クラスタノードで同じsudo設定が必要

クラスタ内のすべてのノードでこのsudo設定を行う必要があります。sudoに他の変更は必要なく、再起動が必要なサービスもありません。