フォルダを細断する方法は?


18

フォルダー/ディレクトリ(フォルダー/ディレクトリ内にある場合があります)の内容を完全に細断するコマンドが必要です。また、コマンドを説明してください。


「細断処理」を定義します。shredコマンドが何をするかを意味するだけなら、答えがあります。
-psusi

非常に密接に関連:askubuntu.com/questions/57572/...
Takkat

@ psusi- by shred iは、リカバリを超えてファイルを削除することを意味します。私はshredコマンドを使用していましたが、それはファイルにのみ適用可能であったため、その中のフォルダとファイルを削除する同様のコマンドが必要でした。
アシュ

どちらが完璧に仕事をしていませんshredsecure-delete
アシュ

1
ここでつまずいた他のユーザーのshred 場合、最新のファイルシステムとハードウェアはデータを所定の場所に上書きせず、代わりに変更をジャーナルするか、ウェアレベリングのために移動するため、思っほど効果的ではありません。関連:unix.stackexchange.com/questions/27027/...
マイクOunsworth

回答:


27
  1. パッケージをインストールしますsecure-delete
  2. コマンドsrm -r pathnameを使用して、フォルダーとファイルを削除します。

デフォルト設定では、38パス(!!!)の上書きが行われますが、これは極端なやり過ぎです(詳細については、こちらを参照してください)。

私の使用法では、ランダムデータの単一パスのみが必要なので、を使用しますsrm -rfll pathname

ファイルとフォルダーのGUIで右クリックオプションを作成する場合は、gnome-actionsを使用して次のようなスクリプトを呼び出します。

#!/bin/bash
if dialog=`zenity --window-icon=warning --question --title="Secure Delete" --no-wrap --text="Are you sure you want to securely delete:\n\n     $1\n\nand any other files and folders selected? File data will be overwritten and cannot be recovered."` 
then /usr/bin/srm -fllrv "$@"| zenity --progress --pulsate --text="File deletion in progress..." --title="Secure Delete" --auto-close
fi 

さらに偏執的な設定が必要な場合は、上記のスクリプトを変更してください。


1
-f fast (and insecure mode): no /dev/urandom, no synchronize mode-l lessens the security (use twice for total insecure mode)。これら二つのことを説明してください。38の上書きは、これらが「38」値にどのように影響するかをデフォルトにしています。そしてなぜl2回-rfll
アシュ

2
OK、デフォルトのプロセス全体は次のとおりです:0xffで1パス(ゼロワイプ)、/ dev / urandomで5つのランダムパスが使用可能な場合、安全なRNGに使用されます。27パスはPeter Gutmannによって定義された特別な値で、 / dev / random。次に、ファイルの名前をランダムな値に変更し、ファイルを切り捨てます。IIRC、/ dev / randomは、より良い乱数生成システムと見なされます。-fllを使用して、1 + 5 + 27 + 5パスをスキップし、ランダムなデータの単一のパスに置き換えます。これは、おそらく「真にランダムな」ジェネレーターからのものです。
-Veazer

@Ashuは、srmのmanページ(Debian Jessie)から短縮されました。(frist) -l: only two passes(second) -l: only one pass。他の人のために、-f: fast (Non-secure random bits)そして-r: recursive。私も強くお勧めし-v: verboseます。screenインスタンスでこれを実行することもお勧めします。多くのデータではかなり時間がかかる可能性があります。
-ThorSummoner

1
に置き換え/usr/bin/srm -fllrvましたbleachbit -s

8

ディレクトリではなくファイルの場合、ここ-exec shred -u {} \;では方法の種類ではなく、より簡単な方法を示します。

cd to your directory.

それから

find . -type f -print0 | xargs -0 shred -fuzv -n 48

これは、現在のディレクトリに48回再帰的にパスcdします。

これが助けになることを願っています。


'-print0'を追加してxargsに '-0'を追加しますか?ディレクトリの名前に空白が含まれている場合があります。
弱い

良い答えですが、なぜxargsを使用するのですか?? 私はxargsを理解していません。
チンマヤB

1

シュレッドはファイルに対してのみ機能します。最初にdir / subdirs内のファイルを細断処理してから、ディレクトリを削除する必要があります。試してみる

find [PATH_TO_DIR] 

削除するファイルのみが表示されるようにします

find [PATH_TO_DIR] -exec shred -u {} \;

その後、ダースを削除します

rm -rf [PATH_TO_DIR]

説明してください{} \;。また、どこかで私はあなたと同じコマンドを見ました'{}' \;が、2つの違いは何ですか??
アシュ

細断処理はディレクトリでは機能しないため、オプション-type fを検索コマンドに追加する方法はありますか?
-andol

@ andol:ええ、私はそれを考えていました..-
アシュ

1
カントは、manページの検索.... {}と\;よりも優れています。findの-execオプションの一部です。
ルーディガー

1

おそらく次のようなものを使用する必要があります。

find dir -type f -exec shred -fuz {} +
rm -rf dir

最初のコマンドはファイルのみを検索し、それらをシュレッドに渡します(可能な限り一度に-\;のようにすべてのファイルに対して新しいシュレッドプロセスを開始する必要はありません)。最後に、ディレクトリも削除します。


1

sudo apt install wipe

$ wipe -rfi dir/*

フラグが使用される場所: -r – tells wipe to recurse into subdirectories -f – enables forced deletion and disable confirmation query -i – shows progress of deletion process


0

この目的のために、次のbashスクリプトを.bashrcに挿入しました

function rm2 {

  for var in $@
  do
  if [ -d $var ]
  then
     nohup $( /usr/bin/find "$var" -type f -exec  shred -n 2 -u -z -x {} \;;/bin/rm -rf "$var" ) & 
  else
    nohup /usr/bin/shred -x -n 2 -u -z "$var" & 
  fi
done
exit
}

-1

複数のファイルまたはディレクトリ全体を細断する必要がある場合はshred -vzn 20 ./shredme/*.*、たとえば「shredme」フォルダ内のファイル拡張子を持つすべてのファイルを上書きするだけです。次に、この例ではすべてのデータが20回上書きされているため、標準のrm -rf ./shredmeコマンドを使用してフォルダー自体を削除します(または右クリックしてフォルダーを削除します)。

例として、多数の複製画像を使用してこの簡単な例を行いました。

ターミナルのスクリーンショット

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.