sudoers エントリ

sudoers エントリ

追加の引数なしで、特定のコマンドのみの実行を許可する sudoers エントリを作成する方法はありますか? sudoers でのコマンド マッチングの仕組みを説明するリソースが見つからないようです。

に sudo 権限を付与するとします/path/to/executable arg

次のようなエントリがあります。

user ALL=(ALL) /path/to/executable arg

これに正確に一致するコマンドへの sudo アクセスを厳密に許可しますか? つまり、ユーザーに sudo 権限を付与しません/path/to/executable arg arg2

答え1

man sudoersの Cmnd_List 定義の近くに次の記述があります。

 A simple filename allows the user to run the command with any arguments
 he/she wishes.  However, you may also specify command line arguments
 (including wildcards).  Alternately, you can specify "" to indicate
 that the command may only be run without command line arguments.

これは、特に「arg」を許可すると「arg arg2」が禁止されるということを意味しているようです。一方、異なる OS (たとえば Linux と Solaris) での sudoers ファイルの処理方法には一貫性がないことがわかっています。そのため、自分の環境でテストする必要があります。

1 つの、やや見苦しい回避策: 必要な引数のみを使用して指定されたコマンドを実行する別の実行可能スクリプトを作成し、元のコマンドではなくそのスクリプトに sudo アクセスを許可します。

 #!/bin/bash
 /path/to/executable arg

関連情報