非ルート Debian Linux デーモンからログを取得するにはどうすればよいですか?
質問
私は Debian Linux でホストされる新しいデーモンを作成しています。
/var/log には root のみの書き込み権限があるため、デーモンはそこにログ ファイルを書き込むことができないことがわかりました。
ただし、そこに書き込むと、ログが自動的にローテーションされ、ユーザーの期待どおりに動作するようです。
root として実行することなく、デーモンが /var/log に表示されるログ エントリを書き込むための推奨される方法は何ですか?
デーモンは Web サーバーであるため、ログ トラフィックは Apache と同様になります。
解決
は、
デーモンのユーザー所有権を持つ/var/log/mydaemon
のようなサブディレクトリを作成する必要があります 他のヒント
ルートとしては、ログファイルを作成し、ウェブサーバのユーザーにファイルの所有者を変更します。
# touch /var/log/myserver.log
# chown wwwuser /var/log/myserver.log
次に、サーバはwwwuser
ユーザーとして実行した場合、ファイルに書き込むことができます。これは、しかし、自動ログローテーションを得ることはありません。あなたは/etc/logrotate.conf
するログファイルを追加したり、/etc/logrotate.d/...
し、サーバーがログファイルを再度開く確認する必要があります logrotateのの信号を必要があります。
また、ログ記録のために syslog
に使用する場合があります。
2 つのオプション:
- として開始
root
, 、ファイルを開いてから、次のコマンドで権限を削除します。setuid
. 。(アクセス許可を削除するための正確なシステム コールは覚えていません。) TCP ポート 80 または 1024 より下のポートにバインドしたい場合は、とにかくこれを行う必要があります。 - 次のように、デーモンのユーザー所有権を持つ /var/log/mydaemon のようなサブディレクトリを作成します。 ワイズテチは言った.
以下のファイル /var/log
自動的に回転されません。代わりに、回転は次によって制御されます。 /etc/logrotate.conf
と以下のファイル /etc/logrotate.d
.
"ロガー" コマンドを使用します。
所属していません StackOverflow