Уничтожение файлов через shred

Korti

Administrator
Admin
ACTIVE NODE
INITIATED
Уничтожение файлов через shred


shred — это консольная утилита для более жёсткого удаления файлов. В отличие от обычного удаления, где система просто убирает указатель на файл, а сами данные ещё можно восстановить, здесь подход другой.


Смысл в том, что shred не ограничивается удалением записи о файле - он многократно перезаписывает область диска, где физически находились данные. Обычно это делается нулями и/или случайными наборами байт, чтобы максимально усложнить восстановление информации.


Проще говоря: вместо удалил и надеешься, что никто не достанет - происходит целенаправленное затирание содержимого на уровне носителя.

Откройте терминал для экспериментов и создайте файл с простым содержанием Hello_world
Для демонстрации выведен список файлов в каталоге (ls) и содержание созданного файла (cat file.txt)

1.png

Теперь для примера создадим символьную ссылку на файл и продемонстрируем её содержимое. Далее демонстрируется сама символьная ссылка и вывод указывает на то, что символьная ссылка ссылается на файл file.txt

2.png

Если удалить файл, затем снова прочитать содержимое символьной ссылки, то мы не увидим никакого содержания, потому что файл удалён

3.png

Теперь создадим файл заново и сделаем на него жёсткую ссылку, это позволит записать данные расположения файла на диске.
После создания жёсткой ссылки, продемонстрировано её содержимое

4.png

Теперь удалим файл и попробуем прочитать содержание жёсткой ссылки

5.png

Как видите, содержание жёсткой ссылки сохранилось не смотря на удалённый файл


Теперь попробуем создать файл, сделать на него жёсткую ссылку и удалить файл с помощью shred, затем снова посмотреть содержание жёсткой ссылки

6.png

Теперь данные на своём месте отсутствуют, не смотря на наличие жёсткой ссылки


shred можно использоваться для уничтожения сразу всех файлов в каталоге:
shred -uvz *


Либо для уничтожения только выбранных файлов, для этого нужно указать эти файлы:
shred -uvz file1 file2 file3


Если нужно уничтожить все файлы в каталоге и в подкаталогах, то есть рекурсивно, здесь на помощь придёт утилита find, потому что shred не умеет так делать самостоятельно:
find . -type f -exec shred -uvz {} \;
 

sedoj-enot

Moderator
Команда форума
ACTIVE NODE
Уничтожение файлов через shred


shred — это консольная утилита для более жёсткого удаления файлов. В отличие от обычного удаления, где система просто убирает указатель на файл, а сами данные ещё можно восстановить, здесь подход другой.


Смысл в том, что shred не ограничивается удалением записи о файле - он многократно перезаписывает область диска, где физически находились данные. Обычно это делается нулями и/или случайными наборами байт, чтобы максимально усложнить восстановление информации.


Проще говоря: вместо удалил и надеешься, что никто не достанет - происходит целенаправленное затирание содержимого на уровне носителя.

Откройте терминал для экспериментов и создайте файл с простым содержанием Hello_world
Для демонстрации выведен список файлов в каталоге (ls) и содержание созданного файла (cat file.txt)

Посмотреть вложение 256

Теперь для примера создадим символьную ссылку на файл и продемонстрируем её содержимое. Далее демонстрируется сама символьная ссылка и вывод указывает на то, что символьная ссылка ссылается на файл file.txt

Посмотреть вложение 257

Если удалить файл, затем снова прочитать содержимое символьной ссылки, то мы не увидим никакого содержания, потому что файл удалён

Посмотреть вложение 258

Теперь создадим файл заново и сделаем на него жёсткую ссылку, это позволит записать данные расположения файла на диске.
После создания жёсткой ссылки, продемонстрировано её содержимое

Посмотреть вложение 259

Теперь удалим файл и попробуем прочитать содержание жёсткой ссылки

Посмотреть вложение 260

Как видите, содержание жёсткой ссылки сохранилось не смотря на удалённый файл


Теперь попробуем создать файл, сделать на него жёсткую ссылку и удалить файл с помощью shred, затем снова посмотреть содержание жёсткой ссылки

Посмотреть вложение 261

Теперь данные на своём месте отсутствуют, не смотря на наличие жёсткой ссылки


shred можно использоваться для уничтожения сразу всех файлов в каталоге:
shred -uvz *


Либо для уничтожения только выбранных файлов, для этого нужно указать эти файлы:
shred -uvz file1 file2 file3


Если нужно уничтожить все файлы в каталоге и в подкаталогах, то есть рекурсивно, здесь на помощь придёт утилита find, потому что shred не умеет так делать самостоятельно:
find . -type f -exec shred -uvz {} \;
Хорошая статья, но важно добавить пару моментов.

Во-первых, shred бесполезен на SSD и флешках. Из-за особенностей их работы данные могут физически остаться в других ячейках. Для SSD лучше использовать полное шифрование диска.
Во-вторых, на некоторых файловых системах (например, ext4) копии данных могут остаться в журнале. Там shred не поможет. Лучше работать с зашифрованным контейнером.
В-третьих, если очень хочется надёжности, можно увеличить число проходов ключом -n 7. Но по факту даже трёх проходов (это по умолчанию) более чем достаточно.
И последнее: если файл кто-то держит открытым (например, лог), shred не сработает. Нужно сначала закрыть программу, которая использует файл.
 

Chugun_666

New member
Уничтожение файлов через shred


shred — это консольная утилита для более жёсткого удаления файлов. В отличие от обычного удаления, где система просто убирает указатель на файл, а сами данные ещё можно восстановить, здесь подход другой.


Смысл в том, что shred не ограничивается удалением записи о файле - он многократно перезаписывает область диска, где физически находились данные. Обычно это делается нулями и/или случайными наборами байт, чтобы максимально усложнить восстановление информации.


Проще говоря: вместо удалил и надеешься, что никто не достанет - происходит целенаправленное затирание содержимого на уровне носителя.

Откройте терминал для экспериментов и создайте файл с простым содержанием Hello_world
Для демонстрации выведен список файлов в каталоге (ls) и содержание созданного файла (cat file.txt)

1.png


Теперь для примера создадим символьную ссылку на файл и продемонстрируем её содержимое. Далее демонстрируется сама символьная ссылка и вывод указывает на то, что символьная ссылка ссылается на файл file.txt

2.png


Если удалить файл, затем снова прочитать содержимое символьной ссылки, то мы не увидим никакого содержания, потому что файл удалён

3.png


Теперь создадим файл заново и сделаем на него жёсткую ссылку, это позволит записать данные расположения файла на диске.
После создания жёсткой ссылки, продемонстрировано её содержимое

4.png


Теперь удалим файл и попробуем прочитать содержание жёсткой ссылки

5.png


Как видите, содержание жёсткой ссылки сохранилось не смотря на удалённый файл


Теперь попробуем создать файл, сделать на него жёсткую ссылку и удалить файл с помощью shred, затем снова посмотреть содержание жёсткой ссылки

6.png


Теперь данные на своём месте отсутствуют, не смотря на наличие жёсткой ссылки


shred можно использоваться для уничтожения сразу всех файлов в каталоге:
shred -uvz *


Либо для уничтожения только выбранных файлов, для этого нужно указать эти файлы:
shred -uvz file1 file2 file3


Если нужно уничтожить все файлы в каталоге и в подкаталогах, то есть рекурсивно, здесь на помощь придёт утилита find, потому что shred не умеет так делать самостоятельно:
find . -type f -exec shred -uvz {} \;
на SSD и в облаках вообще не гарантия, на HDD ещё более-менее, но тоже не 100%
 
Верх