D root
アクセスなしでのクラスタレポートの実行 #
すべてのクラスタノードはSSHによって互いにアクセスできる必要があります。crm report
(トラブルシューティング用)などのツールおよびHawk2の は、ノード間でパスワード不要のSSHアクセスを必要とします。それがない場合、現在のノードからしかデータを収集できません。
セキュリティポリシーでパスワード不要のroot
SSHログインが許可されていない場合、crm report
をroot
として実行すると、すべてのリモートノードで失敗します。この場合、次のオプションのいずれかを使用すればクラスタレポートを実行できます。
クラスタが
sudo
特権を持つ非rootユーザによって初期化された場合、このユーザはクラスタレポートを実行できます。クラスタが
root
ユーザによって初期化された場合、専用の非rootユーザを作成してクラスタレポートを実行できます。
次の手順では、非rootユーザに限定的な特権を付与し、sudo
を使用してcrm report
を実行できるが、その他のsudo
アクセスを許可しないようにする方法について説明しています。
D.1 非rootユーザに限定的なsudo
特権を設定する #
sudo
コマンドは、通常のユーザを素早くroot
にしてコマンドを発行できるようにします。パスワードの入力は、必要な場合と不要な場合があります。すべてのルートレベルのコマンドにsudoアクセスを付与することも、特定のコマンドにのみ付与することもできます。この手順は、クラスタレポートを実行するために必要な特定のコマンドに対してのみsudo
特権を設定する方法を説明しています。一般的には、sudoはエイリアスを使用してコマンド文字列全体を定義します。
sudoを設定するには、visudo
(viでは「ありません」)またはYaSTを使用します。
コマンドラインからsudoを設定するには、root
を使用して、visudo
としてsudoersファイルを編集する必要があります。他のエディタを使用すると、構文エラーやファイルパーミッションエラーが発生し、sudoを実行できないことがあります。
sudo
特権を持っていない非rootユーザ。次の手順では、hareport
というサンプルユーザを使用します。ユーザ
hareport
は、クラスタ内にあるすべてのノードに存在しています。ユーザ
hareport
は、パスワード不要のSSHを使用してクラスタ内のその他すべてのノードにアクセスできます。
sudo
特権を設定する #root
としてログインします。/etc/sudoers
ファイルを開くには、visudo
を入力します。次のカテゴリを探します:
Host alias specification
、User alias specification
、Cmnd alias specification
、およびRunas alias specification
。次のエントリを
/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
ホストエイリアスは、sudoユーザがコマンド発行権利を持つサーバ(またはサーバの範囲)を定義します。ホストエイリアスでは、DNS名またはIPアドレスを使用するか、ネットワーク範囲全体を指定できます(例:
172.17.12.0/24
)。アクセスの範囲を制限するには、クラスタノードのホスト名のみを指定する必要があります。ユーザエイリアスでは、複数のローカルユーザアカウントを1つのエイリアスに追加できます。ただし、ここでは使用されているアカウントは1つのみです。
コマンドエイリアスは、ユーザが実行できるコマンドを定義します。これは、非rootユーザが
sudo
を使用する際にアクセスできるコマンドを制限する場合に便利です。ここでは、hareport
ユーザアカウントは、コマンドcrm report
およびsu
にアクセスする必要があります。runas
エイリアスは、コマンドの実行に使用するアカウントを指定します。ここではroot
です。次の2行を検索します。
Defaults targetpw ALL ALL=(ALL) ALL
これらは、作成したい設定と衝突するため、無効にします。
#Defaults targetpw #ALL ALL=(ALL) ALL
User privilege specification
categoryを探します。上のエイリアスを定義したら、そこに次のルールを追加できます。HA CLUSTER = (R) NOPASSWD:HA_ALLOWED
NOPASSWORD
オプションは、ユーザhareport
がパスワードを入力せずにクラスタレポートを実行できるようにします。(オプション) ユーザ
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に他の変更は必要なく、再起動が必要なサービスもありません。