
RHEL6.6 では devtoolset-3 を使用しています。ユーザーは、すべての devtoolset-3 ツールを含む環境にアクセスするために、scl enable devtoolset-3 bash を実行します。
ユーザーがコマンドのサブセットを root として実行できるようにしたいと考えています。これを行う通常の方法は、ユーザーが root として実行できるようにするコマンドのリストを含むコマンド エイリアスを含む sudoers ファイルで sudo を使用することです。
さまざまな組み合わせを試してみましたが、適切なレシピが見つかりません。
以下は私が試したことのいくつかです:
試行1:
コマンドエイリアスを作成します:
Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/pkill <process name>
そして、myGroupのメンバーがパスワードなしでこれらのコマンドを実行できるようにします
%myGroup ALL=(ALL) NOPASSWD:SETENT: ALLOWEDCOMMANDS
この設定で sudo pkill を実行しようとすると、次の結果が表示されます。
申し訳ありませんが、ユーザーは '/usr/bin/scl enable devtoolset-3 'pkill' ''' を root として実行できません
試行2:
完全なコマンドになるように sudoers ファイルを変更しました:
Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/scl enable devtoolset-3 pkill <some_process_name>
しかし、まだ同じエラーが発生します。
試行3:
/usr/bin/scl
許可されたコマンドとしてリストすると、ユーザーは scl が有効な環境で root として任意のコマンドを実行できるようになります。
scl 対応シェルでユーザーが特定のコマンド リストを実行できるようにする信頼できる方法を誰か思いつきますか?
答え1
万が一、他の誰かがこの問題に遭遇した場合に備えて、Red Hat サポートから受け取った回答をここに投稿しようと思いました。
sudo の devtoolset-3 バージョンは、/etc/sudoers で指定できるコマンド エイリアスの形式をうまく処理できないことが判明しました。
devtoolset-3 が有効になっているシェルでは、sudo=/usr/bin/sudo というエイリアスを作成できます。その後、ユーザーはコマンド エイリアスを正しく処理する標準の sudo を実行します。
そのエイリアスを設定すると、すべてが期待どおりに動作します。