web-dev-qa-db-ja.com

ディレクトリの内容が変更されていないことを確認するための非常に高速で効率的な方法

実行可能ファイルを含むフォルダーの内容が、その中にあるものを実行することを決定する少し前に変更されていないかどうかを判断する方法が必要です。実行する前に毎回確認してください。

問題は、時間の点で非常に制限されており(チェックはほぼ瞬時に行われる必要があり、この特定のケースでは100ミリ秒のようなものは多すぎる)、計算能力が少しある(すべてを持っているコンピューターだけで実行する)インターネットブラウジング、音楽再生など、他にもたくさんのことが起こっています。

Linuxマシンについて話します。最悪の場合、フォルダーのサイズは最大6MBになります。

私の主なアイデアは、ある種のチェックサム-マップ-保存ファイルを暗号化して保管し、新しく計算された値を保存されている値と比較することでした。チェックサムファイルの保存についてはあまり心配していません。ファイルが変更されていないことを可能な限り確認できる効率的なアルゴリズムを使用することに懸念があります。

提案?たとえば、ファイルのメタデータのみを調べるのに十分安全でしょうか?それとも毎回内容を確認することが重要でしょうか?

私が使用するアルゴリズムは私にとって安全です。「侵入者」がそれを「知る」ことができないことは確かなので、心配する必要はありません。

ここではステガノグラフィが役立つと思いますが、ここでそれを実現するための可能な便利な方法がわかりません。

1
niralittle

単にmd5sumを使用できます。

まず、現在のチェックサムのコピーを保持します。

md5sum /path/to/files/* > /path/to/safedirectory/checksum

次に、以下を実行して違いを確認できます。

md5sum /path/to/files/*|diff /path/to/safedirectory/checksum -

@Jediによって提案された代替案は、-cオプションを使用することです。

md5sum -c /path/to/safedirectory/checksum
4
Julie Pelletier

シャサムに基づいて視覚的に認識できる指紋を作成し、検証に使用します。

$ bishop $(find| LC_ALL=C sort|tar -cf - -T - --no-recursion|shasum|tr -d ' -')
+--[ RandomArt ]--+
| .. ooooo        |
|  Eo . .         |
|  .   .          |
|       .         |
|        S o      |
|         o Oo.   |
|          +.Xo   |
|          .* o*  |
|          o+=Bo. |
+-----------------+

入手 ここの司教

0
Alex Stragies