2012-04-18 10 views
4

私が書いているアプリケーションでは、すべてのプロセスが特定のファイルにアクセスしていることを知り、その情報をログファイルにダンプします。最後に、このファイルを削除するプロセスがあります。プロセス名も知りたいです。Linuxでのファイルアクセスの監視

私はINotifyライブラリを使ってファイルへのアクセスを監視できますが、ファイルにアクセスしているプロセス名はわかりません。これはlinuxでもAuditctlパッケージを使用することで可能かもしれませんが、私はこのオプションも使用できません:-(

実際には、最終顧客はプログラムを実行する準備が整っていますが、準備ができていない新しいパッケージをインストールするか、既存のユーティリティへの変更を行う。

+0

プログラミングに関することではなく、より多くのシステム管理。サーバー障害に移動する投票。 – Konerak

+0

@konerak:システム管理に関するものではありません。このようなツールがすべて存在する場合は、これを行うためのコードを記述したいと思います。私はAuditctlのようなツールを使うことができないと言いました。 – Geek

+2

aha、ありがとう。あなたはそのパッケージを使用できない理由を教えてください。それ以上の説明なしに「私はそれを使うことはできません」と拒否されただけで他のパッケージを提案することは避けてください。 – Konerak

答えて

1

確実に一人でユーザ空間からLinuxへの直接添付ファイルへのアクセスを監査することはできません。

あなたはlsofのでポーリングすることができますが、あなたは間のアクセスを検出していない危険がポーリングのオーバーヘッドが発生するのを避け、イベントを失うのを避けるために、元のdnotifyモジュール(inotify ...によって廃止されました)の目的は、 emはファイルオープン時にユーザー識別を行います。

ファイルをNFSサーバーに移動できる場合は、NFSログを使用してファイルへのアクセスを記録できます。

これは、運用サーバーである場合、または運用サーバーが稼働予定の開発サーバーである場合、新しいパッケージをインストールしないことについて顧客は正しいかもしれません。次の開発またはテストサーバーで監査を設定する権限を求めることを検討する必要があります。