どのファイルが読み書きされるかを見つける


14

どのファイルが読み書きされているかを見たい。

そのためのプログラムやコマンドはありますか?数年前にWindowsを使用していたときに、この方法を使用してウイルスやマルウェアが場所を隠していたことを思い出すことができます。

回答:


15

そのプログラムは( "List open files")です。lsof

  • ターミナルを開いてを入力するだけで、開いているlsofすべてのファイルの膨大なリストを取得できます。代わりに、次のようにして1つのコマンドに制限します。

    lsof -c gnome-terminal
    
  • 次のように入力して、検索を特定のディレクトリに制限することもできます。

    lsof -c gnome-terminal -a +D /tmp
    
  • または、どのアプリケーションがそれを開いたかなど、1つの特定のディレクトリにあるすべての開いているファイルをリストします。

    lsof /dev/urandom
    

一部のプロセスはスーパーユーザーrootによって開始されることsudoに注意してください。そのようなプロセスのオープンファイルに関する詳細情報を取得するには、コマンドの前に置く必要がある場合があります。

検索を絞り込むために、grep特定の行を指定できます。

lsof /dev/urandom | grep chrome

  • FD出力の(ファイル記述子)列には、ファイルを開くプログラムの目的に関する情報が表示されます(必ずしも現時点でファイルに何が起きているかはわかりません)。

    • r ファイルが読み取り用に開かれていることを意味します

    • w ファイルが書き込み用に開かれていることを意味します

    • u ファイルが読み取りと書き込みの両方のために開かれていることを意味します


詳細については、マニュアルページman lsof)を参照してください。また、ファイルやディレクトリを検索する必要がある場合は、Linux Filesystem Hierarchy Standardが非常に役立ちます。


4

完全なオーバーキルオプションですが、リアルタイムで機能するオプションとして、inotifyを使用できます。

sudo inotifywait -m -r /

これは大量のメモリを消費し、セットアップに時間がかかることに注意してください。マンページが言うように:

   -r, --recursive
          Watch all subdirectories of any directories passed as arguments.
          Watches  will be set up recursively to an unlimited depth.  Sym‐
          bolic links are not  traversed.   Newly  created  subdirectories
          will also be watched.

          Warning:  If  you use this option while watching the root direc‐
          tory of a large tree, it may take quite a while until  all  ino‐
          tify watches are established, and events will not be received in
          this time.  Also, since one inotify watch  will  be  established
          per subdirectory, it is possible that the maximum amount of ino‐
          tify watches per user will be reached.  The default  maximum  is
          8192;  it  can  be  increased  by  writing  to /proc/sys/fs/ino‐
          tify/max_user_watches.

これはまた、どのプロセスがファイルを混乱させているかを教えてくれませんが、それが起こったときに変更を識別するのに役立つかもしれません。「-e open」を使用すると、非常にビジーなシステムでのノイズの一部を減らすことができます。


前にinotify / max_user_watchesの上限を設定してもしなくても、これは機能しないと確信しています。あなたは...システム上のすべての単一のファイルに時計を追加しようとしている
フォルカー・シーゲル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.