Debian Linuxで/var/logディレクトリを読み取り専用にするのは安全ですか?

Debian Linuxで/var/logディレクトリを読み取り専用にするのは安全ですか?

私は512mb CFの自動をHDとして使用する非常に小さなサーバーをインストールしています。十分なスペースがないだけでなく、ディスクへの書き込みを最小限に抑えたいです。

/var/logディレクトリを完全に消去して読み取り専用(書き込み禁止)にしたいと思います。

これでシステムがハングしますか?

答え1

読み取り専用にするのではなく、/var/logtempfsにします。そして定期的に剪定してください。もちろん、これは空きRAMが十分な場合にのみ機能します。

必須以外のディレクトリにも同じことができます。/var/tmp

マイアイテム/etc/fstab(現在注釈付き):

tmpfs   /var/tmp   tmpfs   defaults,noatime,mode=1777,size=128M   0  0
tmpfs   /var/log   tmpfs   defaults,noatime,mode=0755,size=128M   0  0

答え2

~によるとDebian FHS(ファイルシステム階層標準)、/var/log は書き込み可能でなければなりません。起動時にシステム自体がこのディレクトリのログに書き込むことができるはずです。 /usr を読み取り専用に設定できますが、/var は書き込み可能にマウントする必要があります。

記事からの質問に答えると、はい、システムは起動時に中断されます。カーネルはdmesgに書き込もうとし、書き込めない場合は停止します。

答え3

読み込み専用にする計画だと役に立たない。記録される内容と方法を制御する必要があります。

スペースが不足している場合は、別の適切なサイズの/ varパーティションが必要で、ReiserFSなどの多数の小さなファイルを処理できるファイルシステムを選択できます。

答え4

コメントで述べたように、書き込み可能性/var/logは重要ですが、できるだけ少ない量だけ保存できるようにする方法があります。たとえば、logrotateサイズに応じてログファイルを回転させ、古いファイルを圧縮するように設定できます。そしてそれ以上だけをsyslogログCRITに記録するように設定することもできます(残りは削除されます)。

logrotate例:

   compress

   /var/log/messages {
       rotate 5
       size 100k
       postrotate
           /usr/bin/killall -HUP syslogd
       endscript
   }

logrotate /etc/logrotate.conf(また、cronjobで実行するように設定する必要があります)。

rsyslog.conf例:

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

$IncludeConfig /etc/rsyslog.d/*.conf

*.crit                                                  /var/log/messages
*.emerg                                                 *

ほとんど何も記録されていないので、これはおそらく最高の中間点です。ただし、依然として重要なイベントに関する通知が届きます。ログの保存が重要な場合は、ストレージ容量が大きいサーバーにリモート syslog を構成することも検討できます。

関連情報