5

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

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

実際には、最終顧客がプログラムを実行する準備はできているが、新しいパッケージをインストールしたり、既存のユーティリティに変更を加えたりする準備ができていないという理由で、これは制御された環境です。

4

1 に答える 1

1

Linuxで直接接続されたファイルアクセスをユーザースペースだけから確実に監査することはできません。

lsofを使用してポーリングすることはできますが、ポーリング間のアクセスが検出されないリスクがあります。元のdnotifyモジュール(inotify ...によって廃止されました)の目的は、ポーリングのオーバーヘッドを回避し、イベントの損失を回避することでした。監査システムは、ファイルを開くときにユーザーIDを提供します。

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

これが実稼働サーバーである場合、またはこれが稼働しようとしている開発サーバーである場合、お客様は新しいパッケージをインストールしないことについて正しい可能性があります。次の開発サーバーまたはテストサーバーで監査を設定するための承認を求めることを検討する必要があります。

于 2012-04-26T15:34:02.780 に答える