GNU/Linux >> Linux の 問題 >  >> Linux

ファイルを変更しているプロセスを見つける

解決策 1:

監査を使用してこれを見つけることができます。まだ利用できない場合は、ディストリビューションの監査をインストールして有効にします。

/etc/hosts に監査監視を設定します

/sbin/auditctl -w /etc/hosts -p war -k hosts-file

-w watch /etc/hosts
-p warx watch for write, attribute change, execute or read events
-k hosts-file is a search key.

hosts ファイルが変更されるまで待ってから、ausearch を使用してログに記録されている内容を確認してください

/sbin/ausearch -f /etc/hosts | more

たとえば、大量の出力が得られます

> time->Wed Oct 12 09:34:07 2011 type=PATH
> msg=audit(1318408447.180:870): item=0 name="/etc/hosts" inode=2211062
> dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00
> obj=system_u:object_r:etc_t:s0 type=CWD msg=audit(1318408447.180:870):
> cwd="/home/iain" type=SYSCALL msg=audit(1318408447.180:870):
> arch=c000003e syscall=2 success=yes exit=0 a0=7fff73641c4f a1=941
> a2=1b6 a3=3e7075310c items=1 **ppid=7259**  **pid=7294** au id=1001 uid=0 gid=0
> euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=123 
> comm="touch" **exe="/bin/touch"** subj=user_u:system_r:unconfined_t:s0
> key="hosts-file"

この場合、touch コマンドを使用してファイルの timstamp を変更しました。pid は 7294 で、ppid は 7259 (私のシェル) でした。

解決策 2:

inotify-tools を使用することもできます:

  inotifywait -mq -e open -e modify /etc/hosts

解決策 3:

多くの検索の後、解決策を見つけました。次のコマンドを使用してください: sudo fs_usage | grep [path_to_file]


Linux
  1. シェルスクリプトを使用して /etc/hosts ファイルに行を追加します

  2. Linuxでファイルを使用しているプロセスを見つける方法は?

  3. プロセスが実行されているフォルダーを見つける方法は?

  1. /etc/hosts のサイズ制限は?

  2. /etc/hosts に相当するユーザー固有のものはありますか?

  3. /etc/hosts と /etc/resolv.conf の違い

  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. / etc / hostsを補完するユーザー固有のHostsファイルを作成しますか?

  3. /etc/hosts のサイズ制限 (Linux)