ベストアンサー1
コマンドフィールドで "ALL"キーワードを使用してsudoers仕様を定義すると、特定のコマンドまたはコマンドセットの実行を効果的に防ぐことはできません。これsudoers マニュアルこれを簡単に説明すると、次のようになります。
「!」の制限演算子
ALLから「減算」のために「!」演算子の使用は通常効果がありません。ユーザーは目的のコマンドを別の名前にコピーし、そのコマンドを実行してこの問題を簡単に回避できます。たとえば、
bill ALL = ALL, !SU, !SHELLS
BillがSUまたはSHELLSにリストされているコマンドを実行するのを実際に防ぐ方法はありません。なぜなら、彼は単にコマンドを別の名前にコピーしたり、エディタや他のプログラムのシェルエスケープを使うことができるからです。したがって、そのような制限はせいぜい勧告と見なされるべきです(そして政策によって強化されるべきです)。
通常、ユーザーがsudo ALLを使用している場合、ユーザー仕様の「!」要素に関係なく、ルートシェルを提供する独自のプログラムの作成(または独自のシェルコピーの作成)を防ぐことはできません。
上記の状況を回避する唯一の方法は、ユーザーが実行できる許可されたコマンドのリスト(ホワイトリスト)を持つことです。