Linuxファイルアクセスの監視

Linuxファイルアクセスの監視

過去1週間で特定のファイルに誰がアクセスしたのかを調べる方法はUnixにありますか?おそらく、ユーザーや一部のスクリプトが別の場所にFTPを送信できます。ファイルにアクセスするユーザー名のリストを取得できますか?特定のファイルに誰がアクセスしているのか、どうすればわかりますか?

ベストアンサー1

非常に珍しいロギング戦略がなければ、誰がどのファイルにアクセスしたかについての記録はありません(多くの情報になります)。システムログで誰がいつログインしたかを確認できます。このlastコマンドはログイン履歴を提供します。たとえば、他のログでは、ユーザーがどのように認証してログイン/var/log/auth.logしたか(どの端末またはリモートのホスト)を通知します。 )。

ファイルを最後に読み取った日付をファイル日付と呼びます。アクセス時間、短くは atime。すべてのUNIXファイルシステムはそれを保存できますが(通常は小さい)パフォーマンスが低下するため、多くのシステムではそれを記録しません。ls -ltu /path/to/fileまたは、stat /path/to/fileファイルのアクセス時間を表示します。

ユーザーがファイルにアクセスして自分の痕跡を非表示にしようとしなかった場合は、そのシェル履歴(たとえば~/.bash_history)が手がかりを提供できます。

現在のファイルを開く人が誰であるかを確認するには、を使用しますlsof /path/to/file

将来ファイルに何が起こるかを記録するには、次のようないくつかの方法があります。

  • 使用inotify待つ。誰かがそれを読むと、inotifywait -me access /path/toその行が印刷されます。インターフェイスは、誰がファイルにアクセスしたかを知らせません。この行が表示されたら呼び出すことはできますが、競合状態があります(lsofの実行が開始されたときにアクセスが終了する可能性があります)。/path/to/ ACCESS filefilelsof /path/to/file

  • ロギングファイルシステムファイルシステムツリービューを提供し、すべてのアクセスの高度なロギングを可能にするスタック型ファイルシステム。設定するには、次を参照してください。LoggedFS 構成ファイルの構文

  • Linuxが利用可能監査サブシステムファイルシステムへのアクセスを含む多くのコンテンツを記録します。デーモンが起動したことを確認し、auditd記録する内容を設定します。auditctl。記録されたすべてのジョブは記録されます/var/log/audit/audit.log(通常のディストリビューションで)。特定のファイルの視聴を開始するには:

      auditctl -w /path/to/file
    

    ディレクトリを監視すると、そのディレクトリとそのサブディレクトリのファイルも繰り返し監視されます。

おすすめ記事