Відповіді:
Використовуйте find
команду для shred
рекурсивного виконання :
find <dir> -type f -exec shred {} \;
man shred
.
srm
від відповіді Cookie @ принаймні буде спроба усунути цю проблему).
-exec shred {} +
щоб зробити це швидше, оскільки shred приймає кілька аргументів.
Остерігайся клаптиків!
З клаптикової сторінки:
ОБЕРЕЖНО: Зауважте, що shred спирається на дуже важливе припущення: що файлова система перезаписує дані на місці. Це традиційний спосіб робити речі, але багато сучасних дизайнів файлової системи не задовольняють це припущення. Нижче наведено приклади файлових систем, на яких клаптик не є ефективним або не гарантовано є ефективним у всіх режимах файлової системи:
Файлові системи, структуровані журналом, або такі, що застосовуються з журналом, такі як постачаються разом з AIX та Solaris (і JFS, ReiserFS, XFS, Ext3 тощо)
файлові системи, які записують зайві дані та продовжують роботу, навіть якщо деякі записи не вдається, наприклад, файлові системи на основі RAID
файлові системи, які роблять знімки, такі як NFS-сервер Network Appliance
файлові системи, які кешують у тимчасових місцях, таких як клієнти NFS версії 3
стислі файлові системи
Що стосується файлових систем ext3, вищезазначена відмова від відповідальності застосовується (і, таким чином, клаптики мають обмежену ефективність) лише в режимі data = journal, в якому журнали зберігають дані на додаток до лише метаданих. І в режимах даних = упорядкований (за замовчуванням), і в даних = списання, клаптик працює як завжди. Режими журналу Ext3 можна змінити, додавши параметри data = щось у параметри кріплення для певної файлової системи у файлі / etc / fstab, як це зафіксовано на сторінці man monter (man mount).
Крім того, резервні копії файлової системи та віддалені дзеркала можуть містити копії файлу, які неможливо видалити, і це дозволить пізніше відновити подрібнений файл.
Рішення: Використовуйте зашифровану файлову систему та просто видаліть свої файли.
shred
і шифрування даних перешкоджають зчитці даних із автономного пристрою зберігання даних (думайте, крадіжка або поліція) із шифруванням даних, що має додаткову перевагу захисту всіх файлів, а не лише тих, що видаляються (належним чином). Після того, як файлова система змонтована, ми повертаємося до хороших дозволів ol 'unix в будь-якому випадку, і захист даних знову стає завданням безпеки ОС та правильним адмініструванням системи. Попереднє шифрування файлової системи, безумовно, не гірше для захисту даних у спокої, ніж стратегічне використання shred
!
Замість цього використовуйте захищене видалення.
sudo apt-get install secure-delete
srm -r pathname
Зроблено. Безпечне видалення набагато більше параної, ніж шматок, використовуючи 38 проходів замість 3. Для швидкого однократного пропуску скористайтеся
srm -rfll pathname
Fll отримує менш генератор випадкових даних і лише один прохід.
find
методами на основі запропонованих методів, які намагатимуться також стерти збережені назви файлів шляхом перейменування файлів перед обрізанням та від’єднанням їх.
Поєднуючи цю відповідь з найвідомішими варіантами для подрібнення за допомогою цього посилання для переповнення стека " Видалення файлів постійно та безпечно на CentOS ":
find <directory> -depth -type f -exec shred -v -n 1 -z -u {} \;
Редагувати: Майте на увазі, що найкраща відповідь на подрібнення одного файлу примушує синхронізацію, яка записує зміни в носій перед видаленням файлу, оскільки деякі файли або всі файлові системи мають буфер.
Якщо можливо, команда find повинна викликати скрипт оболонки у файлі, який працює:
shred -v -n 1 /path/to/your/file #overwriting with random data
sync #forcing a sync of the buffers to the disk
shred -v -n 0 -z -u /path/to/your/file #overwriting with zeroes and remove the file
на кожен файл.
rm -rvf $1
до скрипту оболонки (де $ 1 - / шлях / до / ваш / файл, переданий після {}
розширення в find... -exec
)
depth
тут роблять? Також невпевнений у
find /your/directory -exec shred {} \;
find [dirname] -depth -type f -exec shred -n1 {} \;
Це виконує пошук глибини спочатку для файлів у каталозі [dirname], після чого виконує shred -n1
команду на кожному файлі. Видаляючи файли та / або каталоги, додавання -depth
як за замовчуванням є доброю звичкою, навіть якщо це строго не потрібно для цього випадку. При запуску цього виду команди з, rm -rf
замість shred
, -depth
необхідно забезпечити, щоб каталоги не видалялися до того, як вміст каталогів буде намагатися видалити (тим самим спричиняючи помилки).
shred -N 1
, тому що за замовчуванням, подрібнюючи 3 рази, є зміїна олія. Або одного часу достатньо, або 30 разів не вийде.
Найбільш ретельний shred
метод, який я знайшов, і який включає видалення каталогів, - це find
викликати сценарій виклику shred
:
Цей метод також належним чином обробляє імена файлів з пробілами в них.
По-перше - shred
скрипт (я назвав mine dirShredder.sh
і зберігав його в /root
каталозі:
shred -v -n 1 "$1" #overwriting with random data
sync #forcing a sync of the buffers to the disk
shred -v -n 0 -z -u "$1" #overwriting with zeroes and remove the file
rm -rvf "$1" # call rm to remove the directories
Потім викличте сценарій так:
find /volume1/pathToShred/ -mindepth 1 -depth -exec /root/dirShredder.sh "{}" \;
Обов’язково позначте killit.sh
файл виконуваним файлом ( chmod +x
) і, звичайно, оновіть шлях до того режиму, який ви хочете подрібнити, і dirShredder.sh
якщо ви зберігаєте його деінде.
NOTA BENE - shred
має проблеми в файлових системах Copy-On-Write (ZFS, BTRFS тощо) та навіть у файлових системах Journaling. Немає реального прийнятого "найкращого" способу вирішити це, що я знайшов, крім "зашифрованих файлових систем", але я не впевнений, наскільки це ефективно після факту.
Найближче, що, здається, ви можете отримати, це перезаписати весь порожній простір на накопичувачі випадковими даними після вашої операції подрібнення (не нулі, здається, це не завжди надійно). Також, на SSD-дисках можуть бути і інші міркування (наприклад, TRIM.)
Я не збираюся входити до цих сюди, є інші відповіді на стек (наприклад, відповідь невідомого користувача в цьому запитанні) та безліч дискусій у мережі, що висвітлюють ці теми, тому шукайте їх, якщо вам потрібен такий рівень безпеки.