Что такое Linux для SET FILE / ERASE_ON_DELETE?

16

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

 $ SET FILE/ERASE_ON_DELETE SAMPLE.TXT

Это позволяет устанавливать политику в один момент времени, тогда более поздние пользователи файла не должны обрабатывать эту деталь безопасности. Стандартное удаление, которое извлекает имя файла из каталога и освобождает место для использования другим файлом, также изменяет существующее содержимое, чтобы следующий пользователь не мог его прочитать. Нормальное удаление:

$ DELETE SAMPLE.TXT.*

Что такое Linux для этого?

CW Holeman II
источник

Ответы:

19

Это поддерживается только некоторыми файловыми системами Linux:

chattr +s sample.txt

может (или не может) делать то, что вы хотите.

От man chattr:

NAME
       chattr - change file attributes on a Linux second extended file system
...
       When a file with the ‘s’ attribute set is deleted, its blocks are
       zeroed and written back to the disk.  Note: please make sure to read
       the bugs and limitations section at the end of this document.
...
BUGS AND LIMITATIONS
       The  ‘c’, ’s’, and ‘u’ attributes are not honored by the ext2
       and ext3 filesystems as implemented in the current mainline Linux
       kernels. These attributes may be implemented in future versions of
       the ext2 and ext3 filesystems.

Я не знаю, какие конкретные основные версии ядра (если таковые имеются) реализуют это.

Энтон
источник
2
Вау, ты узнаешь что-то новое каждый день. Xfs или zfs реализует этот флаг?
8

Обратите внимание, что с текущей технологией вы иногда не можете это контролировать. С SSD-дисками каждая запись может выполняться в разных местах, сохраняя старые данные ... и это не может быть переопределено ОС, файловой системой или чем-либо другим в программном обеспечении. Подробнее на http://www.anandtech.com/printarticle.aspx?i=3531 .

liori
источник
7

Ближайший эквивалент, который вы обычно найдете в системах Unix, - это шифрование. Простой способ настроить зашифрованный каталог в Linux (и в большинстве других приложений) - это Encfs . Быстрый старт:

mkdir .ciphertext encrypted
encfs .ciphertext encrypted
# work on encrypted/file
fusermount -u encrypted

Есть несколько других вариантов шифрования файловой системы. См. Как лучше всего зашифровать и расшифровать каталог с помощью командной строки или сценария? , Лучший способ сделать полное шифрование диска? и несколько других тем на тему Super User , Server Fault и Ask Ubuntu .

Я не знаю, от чего FILE/ERASE_ON_DELETEзащищают угрозы . Обратите внимание, что в Unix прежнее содержимое перезаписанного или удаленного файла может видеть только системный администратор или кто-то, имеющий физический доступ к диску: не существует «режима быстрого создания файла», который бы заполнял файл случайными данными, которые просто случилось в области диска, используемого файлом.

Жиль "ТАК - перестань быть злым"
источник
4

Я не уверен, что это то, что вы ищете:

dd if=/dev/urandom of=FILE

Он записывает случайные байты в FILE.

Алан Хаггай Алави
источник
Не совсем то же самое, но это, вероятно, так же близко, как вы собираетесь получить в стандартном Linux.
А ну понятно. Спасибо, что сообщили мне, Пол.
Алан Хаггай Алави