ログファイルを読み込む Sudo コマンド

ログファイルを読み込む Sudo コマンド

これは働きます:

apache ALL=(ALL) NOPASSWD:ALL

しかし、そうではありません:

apache ALL=(ALL) NOPASSWD:/var/log/maillog

「sudo:ttyが存在せず、Askpassプログラムが指定されていません」と表示されます。

パスが正しいです。ここで何か抜けましたか?アイデア?

NOPASSWD:機能しない後にスペースを追加します。.sh次の内容でPHPからファイルを呼び出します。

#!/bin/sh
grep bounced /var/log/maillog

スクリプトとログファイルにパスを追加しましたが、機能しません。

ベストアンサー1

sudoers ライン

apache ALL=(ALL) NOPASSWD:/var/log/maillog

apacheユーザーを許可実装する文書/var/log/maillog。ただし、スクリプトが実行されるため、その行grepは適用されません。

Sudoはコマンドで動作します。どのコマンドでも特定のファイルへのアクセスを許可するために使用することはできません。grep bounced /var/log/maillog必要に応じてこのコマンドを許可できます。ただし、必要なものがユーザーがどのプログラムを使用してapacheも読めるようにすることである場合は、そのファイルのアクセス制御リストに追加する/var/log/maillog必要があります。apache

setfacl -m user:apache:r /var/log/maillog

ログの回転によってファイルが再生成されるたびに、このコマンドが必要です。これは、新しいバージョンのlogrotateを使用すると自動的に行われます。。バージョンが古すぎると、このコマンドをpostrotatelogrotate設定にエントリとして追加します。

おすすめ記事