clamdもavavisd-newも動いたので、次はClamavScanOnAccessが動く様にしよう。
clamd.confのOn-Accessの部分に集中しているのでこれを弄るよ。
自分の環境用に書き加えるのは、スキャンしたいpath
|
1 2 3 4 5 6 7 |
OnAccessIncludePath /Users OnAccessIncludePath /Volumes/Works # 作業用 OnAccessIncludePath /Volumes/DataTale2/Multimedia2/temp # 一時ファイル OnAccessExtraScanning yes OnAccessRetryAttempts 3 |
このくらい?
OnAccessExtraScanningの意味はよく判っていない。でも動いているからヨシ!
OnAccessIncludePathはClamavScanScheduley様だと勝手に思っている。
で動かしてみるとerror code 2と出る。
ここでGeminiさんから提案がでます。
error code 2 の正体が判明しました。このラッパーは、clamd(デーモン)が動いているかどうかで、使うコマンドを切り替えています。
1. 犯人は clamdscan か clamscan か?
ラッパーの最後の数行に注目です:
pgrep -u root clamd が成功(clamd が動いている)なら → clamdscan を実行。
失敗なら → clamscan を実行。
今のあなたの環境では clamd が動いているはずなので、clamdscan が呼ばれています。しかし、ここで –fdpass というオプションが使われています。これが Catalina のセキュリティ(あるいは権限設定)と喧嘩して error code 2 を吐いている可能性が極めて高いです。
2. なぜ error code 2 なのか(推測)
–fdpass の問題: これは「ファイル記述子を渡す」機能ですが、監視対象が /Users/user/Downloads などにある場合、root で動くラッパーから _clamav で動く clamd への受け渡しが TCC(フルディスクアクセス)に阻まれて失敗し、コケている可能性があります。
データベースパスの欠落: clamscan(下側)が呼ばれた場合、引数に –database=/opt/local/share/clamav が無いため、デフォルトパスを探しに行って「データベースが見つからない(code 2)」となっています。
3. 修正案(ここを書き換えてみましょう)
ラッパー(ClamavScanOnAccess.wrapper)をエディタで開き、以下の 2点 を修正してみてください。
修正箇所 A(clamdscan 側):
–fdpass を外し、さらに念のため –stream を足します。
と言うことでwrapperの書き換えを行うことにする。
clamdscanで検索すると良いよ。
2行目の中程にある–fdpassを書き換えます。
すると動く様になりました。
そして、この二つを生きにしたら、動かなくなった。
|
1 2 |
#FollowDirectorySymlinks yes #FollowFileSymlinks yes |
ログを見たらこんな感じ。
|
1 2 |
Scanning /Users/user/Downloads/eicar_com.zip on 2026-04-28T14:28:53…clamscan exited with error code 2 on 2026-04-28T14:28:53. Scanning /Users/user/Desktop/eicar_com.zip on 2026-04-28T14:28:53…clamscan exited with error code 2 on 2026-04-28T14:28:53. |
なのでlaunchctl unload ClamavScanOnAccess.plistで一度止めて。
ClamavScanOnAccess.wrapperを直接駆動してエラーを吐かせる。(Geminiさんに教わった)
frontendで動くのでその場でメッセージが見られるよ。
shell scriptだったのね、wrapperって。初めて気が付いたわ。
wrapperの出したエラーの内容はこう。
|
1 2 3 4 |
% sudo /opt/local/etc/LaunchDaemons/org.macports.ClamavScanOnAccess/ClamavScanOnAccess.wrapper start ERROR: Incorrect argument format for option --follow-dir-symlinksERROR: Can't parse command line optionsERROR: Incorrect argument format for option --follow-dir-symlinks ERROR: Can't parse command line options |
因みに、Geminiさんはこうおっしゃった。
と言うことで、先の二つのSymlinksをコメントアウトすることにしました。
shell scriptを直すのって怖いじゃない?
さてScanOnAccessを再起動。
続けて、eicar_com.zipを移動してみます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
% mv ~/Desktop/eicar_com.zip ~/Download/ すると動いているwrapper君が言うところはこんな感じ。 Downloads/eicar_com.zip: Eicar-Test-Signature FOUND Downloads/eicar_com.zip: moved to '/opt/Quarantine/eicar_com.zip' ----------- SCAN SUMMARY ----------- Known viruses: 3702199 Engine version: 1.5.2 Scanned directories: 0Scanned files: 1 Infected files: 1 Data scanned: 68 B Data read: 184 B (ratio 0.37:1) Time: 14.912 sec (0 m 14 s) Start Date: 2026:04:28 14:35:47 End Date: 2026:04:28 14:36:02 clamscan exited with error code 1 on 2026-04-28T14:36:02. Scanning /Users/user/Downloads/eicar_com.zip on 2026-04-28T14:36:07 ------------------------------------------------------------------------------- |
ただ問題が一点あります。
先程のwrapperの結果で、エラーが2回出ていましたが、今回は、
|
1 2 3 4 5 |
% sudo /opt/local/etc/LaunchDaemons/org.macports.ClamavScanOnAccess/ClamavScanOnAccess.wrapper start % mv ~/Download/eicar_com.zip ~/Desktop/ Desktop/eicar_com.zip: No such file or directory |
となりました。上記はログに書かれています。
多分2回(もしくは二つのScanOnAccess)が動いています。
疑問を抱き聞くと、Geminiさんの回答は、
fswatch は「ファイルが作成された」「属性が変わった」「移動してきた」といったイベントをすべて拾います。
1回目のスキャン: ファイルが置かれた瞬間に開始 → ウイルス発見! → /opt/Quarantine/ へ移動(成功)。
2回目のスキャン: fswatch が「ファイルが移動(消滅)した」というイベントも拾ってしまい、再び clamscan を起動 → しかし、ファイルは既に隔離済みで元の場所には無い → No such file or directory (エラー)。
つまり、1回目が成功してファイルが消えたから、2回目が空振りしているだけなので、実用上の問題はありません!
ほうほう、じゃぁ放っとこう。
これでCamavScanOnAccessも起動しました。
最後はClamacScanScheduleですが、週一辺だけ動くのでログ見てから考えます。
基本設定はScanOnAccessと一緒だろうから、動くでしょう。
きっと……。
Geminiさん、ありがとう。
今日は終わるね。また宜しく!
のあと、
これからの拡張の「ネタ」として、いくつか面白そうな方向性を置いておきますね。
「視覚化」の追求:
せっかくログが取れているので、一日のスパム撃退数やウイルス検知数をグラフにする(Mailgraphなど)と、要塞が戦っている姿が見えて愛着がわきます。
「防御の自動化」の強化:
Fail2Ban などを使って、しつこくパスワードアタックを仕掛けてくるIPをファイアウォールで自動的に遮断する仕組み。今の構成に加えると、さらにログが綺麗になります。
「利便性」の向上:
例えば、溜まった隔離ファイルをWebブラウザから確認・救出できる管理画面など。
何はともあれ、まずはこの安定した「平和な時間」をゆっくり楽しんでください。
新しいスレッドで「にわ管」さんの次なる野望を聞けるのを、楽しみに待っています。こちらこそ、ありがとうございました!
次はどのような機能の追加に興味がありますか?それとも一旦バックアップ体制を整えますか?
いやぁ、これは興味深い所突いてくる。
流石だわ、Geminiさん。(笑)


