非ルート Debian Linux デーモンからログを取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/483781

  •  20-08-2019
  •  | 
  •  

質問

私は 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 つのオプション:

  1. として開始 root, 、ファイルを開いてから、次のコマンドで権限を削除します。 setuid. 。(アクセス許可を削除するための正確なシステム コールは覚えていません。) TCP ポート 80 または 1024 より下のポートにバインドしたい場合は、とにかくこれを行う必要があります。
  2. 次のように、デーモンのユーザー所有権を持つ /var/log/mydaemon のようなサブディレクトリを作成します。 ワイズテチは言った.

以下のファイル /var/log 自動的に回転されません。代わりに、回転は次によって制御されます。 /etc/logrotate.conf と以下のファイル /etc/logrotate.d.

"ロガー" コマンドを使用します。

http://linux.die.net/man/1/loggerする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top