sudoers(5)
マンページは、sudoersファイルのコマンドライン引数にシェルスタイルのワイルドカード(メタ文字またはglob文字とも呼ばれる)を使用できることを示しています。それらは*
、、?
そして[...]
です[!...]
。
私の考えは正規表現スタイルで何かを使用することです/path/to/command -a[v]*
。しかし、これはうまくいきません。command -a
command -av
command -avvv...v
-v
tcpdump
さまざまな量のコンテンツを何度も/path/to/command -a -v
追加せずにこれを行う方法はありますか?sudoers
-v
答え1
から始まるバージョン 1.9.10、sudoers
ファイルはPOSIX拡張正規表現をサポートします。マニュアルによれば、次のように必要なものを取得できます。
/path/to/command ^-av*$
1.9.10より前のバージョンでは、sudoers
マニュアルページでこの機能がサポートされていないことが明らかになりました。マニュアルページのコメントは、fnmatch()
一致を実行するためにシステム機能を使用することを示します。 Linux / glibcベースのシステムでは、fnmatch()
正規表現と表現機能は似ていますが、構文の異なる拡張ワイルドカード形式を使用できます。
sudo
したがって、sudoがfnmatchを呼び出す場所を見つけて拡張構文をサポートするように再構築できる必要がある場合は、FNM_EXTMATCH
フラグパラメータと#define _GNU_SOURCE
それを呼び出すファイルの先頭に追加します。
もちろん、これはsuidバイナリの手動パッチバージョンを実行しますので注意してください。