sudo:コマンドに引数を1つだけ許可するには?


8

suodersにエントリを追加して、1人のユーザーがオプション以外の引数を1つだけ使用してコマンドを実行できるようにします。

# tail -1 /etc/sudoers
ALL     ALL = (:tool) NOPASSWD: /bin/echo [a-z]*
$ sudo -g tool /bin/echo abc def
abc def
$ sudo -g tool /bin/echo -abc def
[sudo] password for user: 

sudoers sytnaxを使用してそれを行うことはできますか?または、ヘルパースクリプトを作成する必要がありますか?


それはいつも-abcのようなセットの議論ですか?またはそれは変わることができますか?
マイク

これ[a-z]*はすでに私が望む議論です。したがって、これは可変引数です。(私はテストのためだけに/ bin / echoを使用しています。)
Elrond 2013年

回答:


8

私の知る限りでは、コマンド以外の引数をsudoに渡すことはできません(引数が異なる場合)。

次のように指定できます。

users ALL=(ALL) NOPASSWD: /usr/bin/tail /some/file

これにより、ユーザーは一部のファイルをテールできますが、他のファイルはテールできません。

変数を渡す必要がある場合は、ラッパースクリプトをお勧めします。

次にrsyncラッパーの例を示します。

https://sites.google.com/site/beingroot/articles/useful-scripts/wrapper-script-to-use-rsync-via-sudo

グーグルでsudoラッパーを検索すると、さらに多くの例を見つけることができます。

ユーザーが信頼できない場合は、必ずすべてのパスをハードコーディングし、入力に対して健全性チェックを実行してください。


2
とにかく健全性チェックが必要です。誰も信じない![/ paranoid]
ネイサンC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.