Bir klasör nasıl parçalanır?


18

Bir komutun bir klasör / dizinin içeriğini (klasörlerin / dizinlerin içinde olabileceği gibi) tamamen parçalamasını istiyorum. Ayrıca lütfen komutu açıklayın.


"Parçalama" tanımlayın. shredKomutun ne yaptığını kastediyorsan , cevabın var.
Nisan'da psusi

Çok yakından ilgili: askubuntu.com/questions/57572/…
Takkat

@ psusi- tarafından parçalamak kurtarma dışında dosyayı silmek demek. shred komutunu kullanıyordum, ancak bu yalnızca dosyalara uygulanabilir olduğu için içindeki klasörleri ve dosyaları silmek için benzer bir komut istedim.
Ashu

Hangisi işi mükemmel yapıyor shredya da secure-delete?
Ashu

1
Burada rastlanan diğer kullanıcılar için shred , düşündüğünüz kadar etkili olmadığına dikkat edin , çünkü modern dosya sistemleri ve donanımı verilerin yerine yazmaz, bunun yerine değişiklikleri günlüğe kaydeder veya aşınma seviyelendirmesi için hareket ettirir. İlgili: unix.stackexchange.com/questions/27027/…
Mike Ounsworth

Yanıtlar:


27
  1. Paketi kurun secure-delete.
  2. srm -r pathnameKlasörünüzü ve dosyalarınızı kaldırmak için komutu kullanın .

Varsayılan ayarlar, aşırı overkill imho olan 38 (!!!) üzerine yazma geçişleri içindir (bunun hakkında daha fazla bilgi edinin) burada ).

Kullanımım için, sadece rastgele bir veri geçişi istiyorum, bu yüzden kullanıyorum srm -rfll pathname .

GUI'de dosya ve klasörler için bir sağ tıklama seçeneği oluşturmak istiyorsanız, gnome-actions komutunu kullanarak şöyle bir komut dosyası çağırın:

#!/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 

Daha paranoyak ayarları istiyorsanız yukarıdaki komut dosyasını değiştirdiğinizden emin olun.


1
-f fast (and insecure mode): no /dev/urandom, no synchronize mode. -l lessens the security (use twice for total insecure mode). lütfen bu iki şeyi açıklayabilir misiniz? 38 üzerine yazma varsayılan olarak, bunların '38' değerini nasıl etkilediğidir. ve neden liki kez-rfll
Ashu

2
Tamam, tüm varsayılan süreç: 0xff ile 1 geçiş (sıfır silme), / dev / urandom ile 5 rastgele geçiş, varsa güvenli bir RNG için 27, Peter Gutmann tarafından tanımlanan özel değerlerle 27 geçiş, diğer 5 rastgele geçiş / dev / random. Sonra dosyayı rastgele bir değere yeniden adlandırın ve dosyayı kesin. IIRC, / dev / random daha iyi rasgele sayı üretme sistemi olarak kabul edilir. -Fll kullanarak 1 + 5 + 27 + 5 geçişlerini atlar ve muhtemelen daha az "gerçekten rastgele" bir jeneratörden rastgele bir veri geçişiyle değiştiririz.
Veazer

@ Ashu srm için man sayfasından (Debian Jessie) kısaldı; (frist) -l: only two passes, (second) -l: only one pass. Diğerleri için, -f: fast (Non-secure random bits)ve -r: recursive. Ben de tavsiye ederim -v: verbose. Ayrıca screenbunu bir örnekte çalıştırmanızı öneririm , çok fazla veri üzerinde biraz zaman alabilir.
ThorSummoner

1
Ben yerini almıştır /usr/bin/srm -fllrvilebleachbit -s

8

Dizin olmayan dosyalar için, yol -exec shred -u {} \;türü yerine daha basit bir yol vardır:

cd to your directory.

sonra

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

bu 48 özyinelemede bulunduğunuz dizine özyinelemeli olarak geçer cd.

Umarım bu biraz yardımcı olur.


Bulmak için '-print0' ve xargs'a '-0' eklensin mi? Dizinlerin adlarında boşluk olabilir.
zayıf

İyi cevap ama neden xargs kullanıyorsunuz ?? Xargs'ı anlamıyorum.
Chinmaya B

1

Parçalama yalnızca dosyalarda çalışır. Önce dir / subdirs içindeki dosyaları parçalamanız ve ardından dizinleri kaldırmanız gerekir. Deneyin

find [PATH_TO_DIR] 

ve yalnızca silmek istediğiniz dosyaları gördüğünüzden emin olun

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

sonra dirs

rm -rf [PATH_TO_DIR]

lütfen açıklayabilir misin {} \;? Ayrıca bir yerde elsi seninle aynı komutu görmüştü ama '{}' \;ikisi arasındaki fark nedir ??
Ashu

Parçalama dizinlerde çalışmadığından, find komutlarına -type f seçeneğini eklemeye ne dersiniz?
andol

@ andol: evet bunu düşünüyordum ..
Ashu

1
Cant man bulmak sayfasından daha iyi açıklayamaz .... {} ve \; bulmanın -exec seçeneğinin bir parçasıdır.
Ruediger

1

Muhtemelen buna benzer bir şey kullanmak istersiniz:

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

İlk komut yalnızca dosyaları bulur ve bunları parçalamaya geçirir (mümkün olduğunca çok sayıda - \; does gibi her dosya için yeni bir parçalama işlemi başlatmaya gerek yoktur). Son olarak, dizinleri de kaldırın.


1

sudo apt install wipe

$ wipe -rfi dir/*

bayrakların kullanıldığı yer: -r – tells wipe to recurse into subdirectories -f – enables forced deletion and disable confirmation query -i – shows progress of deletion process


0

Bu amaç için aşağıdaki bash betiğini .bashrc dosyasına ekledim

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

Birden fazla dosyayı veya tüm bir dizini parçalamam gerektiğinde shred -vzn 20 ./shredme/*.* örneğin "shredme" klasöründeki herhangi bir dosya uzantısına sahip tüm dosyaların üzerine yazdığımı kullanıyorum. Ardından, bu örnek için tüm verilerin üzerine 20 kez yazıldığından klasörün kendisini kaldırmak (veya klasörü sağ tıklayıp silmek) için standart rm -rf ./shredme komutunu kullanabilirsiniz.

Buna örnek olarak bir sürü kopya görüntü ile hızlı bir örnek yaptım.

Terminal ekran görüntüsü

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.