ユーザーが引数(スペースを含む)を使用してコマンドを実行できるようにする

ユーザーが引数(スペースを含む)を使用してコマンドを実行できるようにする

ユーザーが特定のファイルの特定の文字列に対してgrep(sudo経由)とgrepを実行できるようにしたいと思います。このユーザーがすべてのファイルに対してgrepを実行できるようにしたくありません。ユーザーにファイルに対する読み取り権限がないため、sudoを使用する必要があります。私のコンピュータ上の他のサービスのログファイルをgrepするためにnagiosチェックを作成しようとしています。

しかし、うまくいきません。 sudoは引き続きパスワードを要求します。

sudo grep "string I want (" /var/log/thefilename.log私のコマンドは次のとおりです。 (はい、文字列に生といくつかの空白が含まれるようにgrepしたいと思います。)(

/etc/sudoers.d/user-can-grep次のようなものがあります。

user ALL=(root) NOPASSWD: /bin/grep "string I want (" /var/log/thefilename.log

sudoersファイルは所有者が所有し、root:root権限があります。-r--r-----

サーバーはUbuntu Trusted 14.04.3 LTSです。

どうすればいいですか?

ベストアンサー1

  1. スクリプトの作成(ルートとしてのみ作成可能)
  2. そのスクリプトでgrep必要な操作を実行します。
  3. sudoers設定はスクリプトへのアクセスのみを許可します。
  4. ツールを設定するか、ユーザーに sudo を介してスクリプトを実行することをお勧めします

デバッグがより簡単で、特定のファイルへの特定のアクセスをロックするのが簡単で、悪用が難しくなります。

おすすめ記事