38

Debian Linux でホストされる新しいデーモンを作成しています。

/var/log には root のみの書き込み権限があるため、デーモンがそこにログ ファイルを書き込めないことがわかりました。

ただし、そこに書き込むと、ログの自動ローテーションが行われ、ユーザーの期待どおりに機能するようです。

root として実行しなくても、デーモンが /var/log に表示されるログ エントリを書き込むための推奨される方法は何ですか?

デーモンは Web サーバーであるため、ログ トラフィックは Apache に似ています。

4

4 に答える 4

47

/var/log/mydaemonデーモンのユーザー所有権を持つようなサブディレクトリを作成する必要があります

于 2009-01-27T15:19:29.360 に答える
16

root としてそこにログファイルを作成し、ファイルの所有者を webserver ユーザーに変更します。

# touch /var/log/myserver.log
# chown wwwuser /var/log/myserver.log

次に、サーバーは user として実行するとファイルに書き込むことができますwwwuser。ただし、ログの自動ローテーションは得られません。ログファイルを/etc/logrotate.confまたはに追加し、 logrotateが必要な信号を送信し/etc/logrotate.d/...たときにサーバーがログファイルを再度開くようにする必要があります。

syslogシナリオに適している場合は、ロギングにも使用できます。

于 2009-01-27T15:25:11.283 に答える
3

2 つのオプション:

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

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

于 2009-01-27T15:25:59.800 に答える
2

「ロガー」コマンドを使用する

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

于 2012-05-24T10:13:51.153 に答える