私たちはRHEL6.6でdevtoolset-3を使用しています。ユーザーはsclを有効にするdevtoolset-3 bashを実行して、すべてのdevtoolset-3ツールを含む環境にアクセスします。
ユーザーがrootとしてコマンドのサブセットを実行できるようにしたいと思います。これを行う一般的な方法は、コマンドエイリアスとユーザーがrootとして実行できるコマンドのリストを含むsudoersファイルでsudoを使用することです。
さまざまな組み合わせを試してみましたが、ぴったりのレシピが浮かびませんね。
私が試したいくつかのことは次のとおりです。
1を試してください:
コマンドエイリアスを作成します。
Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/pkill <process name>
その後、myGroupのメンバーがパスワードなしでこれらのコマンドを実行できるようにします。
%myGroup ALL=(ALL) NOPASSWD:SETENT: ALLOWEDCOMMANDS
その設定でsudo pkillを実行しようとすると、次の結果が表示されます。
申し訳ありません。ユーザーはrootとして '/usr/bin/sclを有効にするdevtoolset-3 'pkill' '''を実行できません。
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を実行します。
そのエイリアスを使用した後、すべてが期待どおりに機能します。