sudoers
ファイル内のオプションなしで実行中のコマンドを制限できます。
たとえば、/bin/su
失敗してsu
4文字を超えるすべてのエントリを実行する必要があります。例:
sudo su daniel
実行する必要があります
michael ALL=(ALL) NOPASSWD:ALL, /bin/su [a-z]{5,}
この用語を試してください
とにかくこれを達成できますか?
答え1
sudoersコマンド仕様にワイルドカード文字を使用できます。/bin/su
5つの小文字で始まり、その後に他の任意の数の引数が続く引数としてのみ実行できるようにするには、次のようにします。
michael ALL=(ALL) NOPASSWD: /bin/su [a-z][a-z][a-z][a-z][a-z]*
可変長文字列と一致できる唯一のワイルドカードは、引数の*
境界とも一致するため、引数が固定サイズでない限り、単一の引数に制限することはできません。
より複雑なルールが必要な場合は、ラッパースクリプトの実行を許可し、ラッパースクリプトでパラメータチェックを実行するようにsudoを設定します。
…: ALL, /bin/su …
任意のコマンドはすでに許可されているため意味がありませんALL
。と同じです…: ALL
。
sudoersの設定で何を意味するのかは明確ではありません。目標ではなく、具体的な実装に焦点を当てます。。 Michaelがパスワードなしでいくつかのユーザーとしてランダムなコマンドを実行できるようにしたい場合、呼び出しはsu
奇妙な間接的な方法です。 sudoはすでに権限を高めています。なぜまだsuを使うべきですか?一連のユーザーを定義し、Michaelがこれらのいずれかで任意のコマンドを実行できるようにします。
User_Alias target_users = alice, charlie, dominique
michael ALL = (target_users) NOPASSWD: ALL