パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。時々更新!

ファイルアクセスのログを取る? auditd

Windows では、何かのファイルをどのプロセスがどのタイミングでアクセスしているか、等調べたい時は、ProcessMonitor というソフトがある。ファイルにアクセスしたりネットワークにアクセスしたりする毎にイベントが発生するようで、その大量のイベントをフィルタリングしてリストアップできる。あるファイルをちゃんと置いているのに、あるプログラムから見つかりませんエラーが出る場合、そのファイル名で調べると、全然違う場所を探しに行っていたり、なんかも調べられる。

CentOS を使っていて、同じように調べる方法は無いのかな、と調べてみた。auditd というソフトを使うようだ。小生の使っているマシンには、最初からインストールされていたので試してみた。まずは auditd を service auditd start で開始する。/var/log/audit/audit.log にフィルタリングされたイベントがどんどん書き込まれるので、tail -f なんかで監視する。

フィルタの設定は auditctl というコメンドで行うようだ。色々条件が設定できる。が結構難しそう。ファイルアクセスも、システムコール open を知っていないとうまくフィルタリング出来なかったり。使いこなそうと思うと、man をじっくり読む必要がありそうだ。

実は今回、httpd(apache) で、403 エラーが出るので、どこが原因か調べていたのだが、結局 audit では判明せず(使いこなせてないので)、色々ググって同じ壁に当たっていた人の解決法が使えたという結末なのだが。トップディレクトリのパーミッションを 744 > 755 にすれば良かったようだ。結構 Linux も難しいね。