CentOS - Clam AntiVirus でパーミッションエラー!

Updated:


当方、以前から CentOS サーバで運用しています。
ウイルス対策として “Clam AntiVirus” を導入しているのですが、いつの頃からかエラーメールが届くようになっていました。

以下、現象と原因と対策についての記録です。

0. 前提条件

  • CentOS 6.4 サーバでの作業を想定。
  • アンチウイルスソフト Clam AntiVirus がインストール済み。

1. 現象

実際に発生した現象は、サーバの cron.daily でウイルス定義ファイル更新 freshclam が起動した際に以下のようなエラーが発生し、root 宛にメールが届く。

/etc/cron.daily/freshclam:

ERROR: Can't create temporary directory /var/lib/clamav/clamav-9441201be3d642a23bcf27bf0a2f4fde

また、/var/log/clamav/freshclam.log に以下のようなエラーメッセージが出力される。

File: /var/log/clamav/freshclam.log

1
2
ERROR: Can't create temporary directory /var/lib/clamav/clamav-9441201be3d642a23bcf27bf0a2f4fde
Hint: The database directory must be writable for UID 498 or GID 499

実際、手動で freshclam コマンドを実行すると上記エラーが発生する。

2. 原因

clamav-dbyum でアップデートされると、パーミッションが clamav から clamd に変更されることが原因のようだ。

3. 対策

エラーメッセージにもあるようにパーミッションを設定する。
以下は当方の例であり、ユーザID・グループIDは環境により異なる。

chown -R 498:499 /var/lib/clamav

もしくは

chown -R clamav:clamav /var/lib/clamav

また、現時点ではエラーになっていないが、ログローテーション時にエラーにならないようにログローテーションの設定も修正しておくと良いだろう。

File: /etc/logrotate.d/freshclam

1
2
3
4
5
/var/log/clamav/freshclam.log {
    missingok
    notifempty
    create 644 clamav clamav  # <= "clam clam" になってたら "clamav clamav" に修正
}

4. 確認

freshclam コマンドを実行してエラーが発生しなければ OK.
また、cron.daily による毎日の起動時エラーメールが届かないことも確認する。


ちなみに、少し前まで CentOS 6.2 から 6.3, 6.4 へと順次アップグレードしてきた環境で運用していましたが、先日 CentOS 6.4 をクリーンインストールしてから今回のようなエラーに見舞われるようになっていました。(因果関係は不明)

しかし、原因と対策は判明したので、今後は慌てなくてすみます。

以上。





 

Sponsored Link

 

Comments