ファイルパスが与えられたら、どのプロセスがそのファイルを作成したか(および/または読み取り/書き込み)を確認するにはどうすればよいですか。
答え1
これラソフ(複数の回答ですでに説明されている)コマンドは、実行時にどのプロセスにファイルが開いているかを示します。lsof
ほとんどすべてのUNIXバリアントで動作します。
lsof /path/to/file
lsof
2マイクロ秒前に開き、1マイクロ秒前に閉じたファイルについてはお知らせしません。特定のファイルを監視し、そのファイルにアクセスするときに反応する必要がある場合は、別のツールが必要です。
事前に計画できる場合は、ファイルをロギングファイルシステムファイルシステムLoggedFSはヒューズ階層内のファイルへのすべてのアクセスを記録するスタックファイルシステム。ロギングパラメータは高度に設定可能です。ヒューズを使用できます。すべての主要大学。ファイルが作成されたディレクトリへのアクセスを記録する必要があります。提供されているサンプル構成ファイルから始めてください。このガイド。
loggedfs -l /path/to/log_file -c /path/to/config.xml /path/to/directory
tail -f /path/to/log_file
多くの大学では他の監視施設も提供しています。 Linuxでは、比較的新機能を使用できます。 監査サブシステム。これに関する文献はあまりありません(ただし、Loggedfsに関するもの以上)。このチュートリアルまたはㅏ 珍しい はいそれともauditctl
マニュアルページ。ここでは、デーモンが起動したことを確認してから、以下を実行すれば十分ですauditctl
。
auditctl -w /path/to/file
(以前のシステムではこれが必要だと思いますauditctl -a exit,always -w /path/to/file
。)ログを見てください/var/log/audit/audit.log
。
答え2
もちろん、繰り返し実行することができ、lsof
運が良ければ、犯人はファイルが表示されるのに十分長くファイルを開いたままにします。つまり。 :
$ lsof -r1 /path/to/file
または多くのファイルの場合
$ lsof -r1 /path/to/folder/*
これは、特定の時点で指定されたパスへのすべてのアクセスを毎秒1回リストします。これには、ファイルにアクセスするプロセスのPIDのリストが含まれます。
これがうまくいかない場合、つまりファイルが非常に迅速に開いて閉じられることが頻繁に発生するため、より洗練されたツールを見つける必要があると思います。おそらくロギングファイルシステム何ができたのか?
核ランド
1秒に1回lsof
動作しない場合は、whileループをハックしてできるだけ早くlsofを繰り返し実行できます。良い:
$ while true; do lsof /paht/to/file; done;
きれいではありませんが、おそらくそれでした。
答え3
あなたはそれを使用することができますlsof
その理由は次のとおりです。
$ lsof /tmp/file
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
less 4737 wena 4r REG 8,6 90700 1643536 /tmp/file
less
名前付きプロセスがファイルを保存していると思います」/tmp/ファイル「開いている。
ノートgeany
:奇妙なことは、orを使用しても機能しないことですnano
。より良いアドバイスを楽しみにしています。
答え4
ls
Chromeで使用されているファイルを使用してgrep
見つけることができます
$ ls -l /proc/*/fd | grep "chrome"
lrwx------ 1 ba abc 64 Jul 16 22:19 104 -> /home/abc/.config/google-chrome/Default/Cookies
lr-x------ 1 abc abc 64 Jul 16 22:19 113 -> /opt/google/chrome/nacl_irt_x86_64.nexe
lrwx------ 1 abc abc 64 Jul 16 22:19 121 -> /home/abc/.cache/google-chrome/Default/Cache/data_0
lrwx------ 1 abc abc 64 Jul 16 22:19 122 -> /home/abc/.cache/google-chrome/Default/Cache/data_1
lrwx------ 1 abc abc 64 Jul 16 22:19 123 -> /home/abc/.cache/google-chrome/Default/Cache/data_2
lr-x------ 1 abc abc 64 Jul 16 22:19 125 -> /home/abc/.config/google-chrome/Dictionaries/en-US-3-0.bdic
別の方法は、次のものを使用することですlsof
。grep
$ lsof | grep "chrome"
chrome 2204 abc cwd DIR 8,5 4096 1441794 /home/abc
chrome 2204 abc rtd DIR 8,5 4096 2 /
chrome 2204 abc txt REG 8,5 87345336 5111885 /opt/google/chrome/chrome
chrome 2204 abc mem REG 8,5 4202496 1443927 /home/abc/.cache/google-chrome/Default/Media Cache/data_3
chrome 2204 abc mem REG 8,5 1056768 1443926 /home/abc/.cache/google-chrome/Default/Media Cache/data_2
chrome 2204 abc mem REG 8,5 270336 1443925 /home/abc/.cache/google-chrome/Default/Media Cache/data_1
chrome 2204 abc mem REG 8,5 45056 1443924 /home/abc/.cache/google-chrome/Default/Media Cache/data_0