ユーザーが特定のファイルの特定の文字列に対して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
- スクリプトの作成(ルートとしてのみ作成可能)
- そのスクリプトで
grep
必要な操作を実行します。 - sudoers設定はスクリプトへのアクセスのみを許可します。
- ツールを設定するか、ユーザーに sudo を介してスクリプトを実行することをお勧めします
デバッグがより簡単で、特定のファイルへの特定のアクセスをロックするのが簡単で、悪用が難しくなります。