Linuxでファイルを読んだかどうか、いつ読んだのかを確認する方法

Linuxでファイルを読んだかどうか、いつ読んだのかを確認する方法

ファイルを読んだか、いつ読んだのかを確認できるツールやコマンドはありますか?最後に修正されたものだけ探してみましょう。

答え1

stat、、、、、、、などのツールを使用して、最後に読み込んだりls -luアクセスした時間を含む最後のアクセス時間を検索したりできます。catawksedgrepvimlesstailhead

読み込みがcat標準出力で完全な内容を実際に表示するなど、テキストエディタを使用するなどの特定のものを意味する場合は、監査ログを設定して確認するvim以外にこれが行われたかどうかを知る方法はありませんauditd。存在すると仮定し、これまでにアクセスしたすべてのシェルの履歴を確認します。これは明らかに不可能です。唯一の確実性は訪問時間です。数字や方法に関係なく、いつでもファイルを読むことを検討している場合は、私が提供したコマンドのいずれかを使用できます。

[nasir-rocky@rocky-linux ~]$ stat test
  File: test
  Size: 12              Blocks: 8          IO Block: 4096   regular file
Device: fd02h/64770d    Inode: 145         Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/nasir-rocky)   Gid: ( 1000/nasir-rocky)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2023-05-29 18:54:53.740411288 -0400
Modify: 2023-05-29 18:54:50.254416606 -0400
Change: 2023-05-29 18:54:50.254416606 -0400
Birth: 2023-02-09 17:38:42.636002933 -0500

これは(別名ls -uとして使用しましたが、同じことを行います)ll -u

[nasir-rocky@rocky-linux ~]$ ll -u test
-rw-r--r--. 1 nasir-rocky nasir-rocky 12 Sep 19 07:33 test

ll編集時間だけを表示するかどうかとどう違うかを確認してください。ls -l

[nasir-rocky@rocky-linux ~]$ ll test
-rw-r--r--. 1 nasir-rocky nasir-rocky 12 May 29 18:54 test

答え2

ほとんどのLinuxファイルシステムは、変更時間属性を更新して保存するだけでなく、ファイルアクセス時間も記録します(atime)。

メモ:atimeタイムスタンプの正確性または使用可能/更新は、使用されるファイルシステムとインストールオプションなど)noatimestrictatimerelatime

atimeプロパティを表示する方法はいくつかありますが、lsバナー -uそして/または--time=atime または、例えばstat注文する。

stat .bashrc

  File: ‘.bashrc’
  Size: 231         Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 262277      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/  hbruijn)   Gid: ( 1000/  hbruijn)
Context: system_u:object_r:user_home_t:s0
Access: 2023-09-01 12:59:34.648395490 +0200
Modify: 2016-12-07 00:19:33.000000000 +0100
Change: 2017-09-25 14:15:35.152000000 +0200
 Birth: -

ファイルにアクセスした人を見つけるには、auditdを使用して監査を事前設定し、ファイルへのすべてのアクセスの包括的な記録を取得する必要があることがよくあります。

答え3

見つける方法もしファイルを読んで読んだ時間

審査

その特定のファイルの監視ルールを設定します/etc/audit/rules.d/audit.rules

-w  /opt/something/somefile    -p r    -k ABC123
  • これは-k表示されるキー名なので、/var/log/audit/audit.log簡単にテキスト検索が可能な一意の名前を使用してください。audit.log
  • -p読み取りに使用される権限フラグですr。ここで使用可能なすべてのオプションは、rwxa属性の読み取り、書き込み、実行、および変更に使用されます。

要求されたアクションを実行する監査ルールを実装する他の方法がありますが、具体的に要求する内容(読み取り専用)に応じて、監査ルールの種類のフラグを監視するのがr最善のようです。最善のアプローチ。

その行エントリ内にaudit.log一意のキー名(例ではABC123)がある場合すべてファイルの読み取り、書き込み、または実行された時間/属性_変更された時間。また、誰、プロセスID、sh..infoが含まれます。

唯一の欠点は、audit.logのタイムスタンプがepoch形式(1970年1月1日以降の秒数)であるため、これをヒューマン形式に変換する必要があることです。

関連情報