Авторские статьи

Не работает в Linux chattr.


Много статей в Интернете пестрят советами про chattr +s, который добавляет чуток безопасности, позволяя немного забыть про файловые шредеры. Видно авторы статей не проверяют работу бита +s, хотя в man chattr написано, что работа бита +s не гарантируется. Да и не работает бит +s до сих пор, хотя ядро линукс уже стало 3.5, а обещали в версии ядра 3.3 что будет работать.

Когда-нибудь в далёком будущем, возможно, secure bit заработает и тогда можно немного усилить безопасность и присвоить атрибут +s для каталога с важной информацией так:
sudo chattr +sR ~/Документы

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

  • не каждый использует shred -uz имя_файла для безопасного удаления файла, который сделает несколько итераций, заполняя старое содержимое случайными данными, и на прощание скроет свою работу, заполнив всё нулями.
  • в скриптах обычно используется rm, который просто удаляет файлы. Но можно сделать себе алиас на shred и удалять более безопасно.

Настоящий шредер лучше всего, но его нужно не забывать вызывать для удаления файла, а chattr +s работает "автоматом".

Нужно проверить на тестовом файле, что всё работает как надо и вы не сидите в неведении. Создаём тестовый файл.
for i in {10001..10200}; do echo "$i test line" >> testfile.txt; done

Получаем информацию о файле, точнее о стартовом LBA адресе (begin_LBA). sync && sudo hdparm --fibmap testfile.txt

Читаем данные со стартового LBA адреса файла, замените [begin_LBA] на свой из вывода предыдущей команды:
sync && sudo hdparm --read-sector [begin_LBA] /dev/sda

Заметьте что нужно использовать обобщённое имя, в моём случае /dev/sda, а не точное имя раздела, например /dev/sda2. Теперь удалите файл.
rm testfile.txt

Сбросьте файловые буфера и синхронизируйте свою файловую систему.
sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

Повторяем чтение со стартового адреса:
sync && sudo hdparm --read-sector [begin_LBA] /dev/sda

Вы должны видеть нули! Если вы видите, что-то отличное от нулей, то значит не работает бит +s - secure delete. Нет ничего хуже, чем видимость безопасности!

Есть много параметров у chattr, один из них +i (неизменяемый = immutable), который не позволит удалить, переместить или переименовать файл даже root`у. Это бывает иногда полезно.

Дата последней правки: 2024-03-28 09:40:18

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта