きめ細かいsudoers設定(許可されたコマンドライン引数)


20

ユーザーが実行できるようにする簡単な方法はありますか(たとえば)

/usr/bin/pacman -S -u

ルートとして、彼が実行することを許可せずに

/usr/bin/pacman -S -u some_package

この線

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u

両方を許可し、

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u ""

意味的に同等であるように見えます。

回答:


27

あなたの場合、次のようなものを試してください:

Cmnd_Alias PACMAN = /usr/bin/pacman -S -u, ! /usr/bin/pacman -S -u some_package
user ALL=(root) NOPASSWD: PACMAN

sudoersファイルで[az]、[0-9]、*などのシェルグロブパターンを使用して、特定のパターンに一致するパッケージを除外できます。


3

必要なことを行うスクリプトを作成し、それにsudoアクセスを許可します。

また、これを実行する環境がネットワークにまったくアクセスできないようにするか、独自のDNSを使用してミラーを偽装し、pacmanによってインストールされたときにルートとして任意のコードを実行できるようにしてください。


thatsのないエレガントな方法、sudoのサポートデフォルトでは正確に与えられた場合
マティアス・クルル

1
最善の解決策ではありませんが、セキュリティ警告のために+1
アーロンJラング14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.