Раздел LUKS все еще доступен после физического извлечения диска

  • Creation: хотя это и не одно из исходных свойств файлов, включенных в UNIX, сегодня оно доступно во многих файловых системах (включая, что особенно актуально для MacOS, HFS+) и в современных версиях. таких инструментов, как lsи stat, знают, как получить к нему доступ: ls -U, statиспользует B( документировано на справочных страницах).
  • Добавлено: Этого как такового не существует.Вы можете использовать время последнего изменения каталога, содержащего файл, чтобы узнать, когда произошло последнее изменение этого каталога, то есть либо добавление файла (создание или перемещение), удаление (удаление или перемещение), либо переименован. Но вы не знаете, какой именно, и получаете информацию только о самом последнем событии.
  • Измененои Последний доступ: это оригинальные статистические данные, которые всегда были доступны для файлов в UNIX. Большинство файловых систем и в основном все инструменты поддерживают их: ls -u, statиспользует aи m(опять же, как задокументировано). Обратите внимание, что для уменьшения записи на диск при каждом доступе к файлу отслеживание метки времени последнего доступа иногда отключается или отключается условно.

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

1
23.01.2020, 17:37
2 ответа

Если вы запустили программу/скрипт с самого USB-накопителя, вы должны быть в состоянии выяснить, какая карта/имя LUKS и устройство, на котором он находится (, или просто указать скрипту устройство или сопоставленное имя, если вы его знаете )и следите за тем, когда устройство «исчезает» при его удалении. Затем размонтируйте его.

Я почти уверен , что отсоединение USB приведет к исчезновению устройства (/dev/sdXn), но если это не так, вам придется наблюдать dmesgили смотреть в системном журнале, или найти его где-нибудь в /sys, возможно.

Вот доказательство -концептуального сценария bash -, который выглядит так, как будто он должен работать, но у меня нет разделов LUKS на USB-накопителе для тестирования,поэтому я не уверен, нужны ли umountтакие параметры, как --lazyили --force.

map=$( df --output=source $PWD |tail -n1 )

device=$( sudo cryptsetup status "$map" | grep -o "device:.*"|cut -d' ' -f 3 )

while [ -b "$device" ]
do
    sleep 30
done

echo "Device $device is missing, unmounting"
sudo umount -v "$map"

Если он запускается из смонтированного контейнера LUKS, $PWDдолжен найти имя LUKS, на которое он сопоставлен, а затем устройство, и если устройство перестанет быть блочным специальным файлом, размонтировать сопоставленное устройство.

PS Если устройство было смонтировано rw(доступно для записи)файловая система может быть повреждена внезапным его отключением. FAT кажется особенно уязвимой, в то время как журналируемая файловая система должна быть более надежной. Если он смонтирован ro (только для чтения -), по крайней мере, вы можете избежать этой проблемы, mount принимает -o roи cryptsetup принимает --readonly(, оба, вероятно, не нужны)

1
27.01.2020, 23:16

Похоже, вы пропускаете некоторые этапы процесса. Вы должны:

  • Вставить диск
  • cryptsetup luksOpen /dev/sdb flash
  • mount /dev/mapper/flash /mnt/flash
  • Использовать диск как обычно
  • umount /mnt/flash
  • cryptsetup close flash
  • Извлеките диск

Инверсия mountumount. Попытка размонтироватьне вставленный диск может зависнуть, в зависимости от того, что пытается сделать система. Шаг cryptsetup closeдополнительно удаляет сопоставление диска и стирает ключ шифрования из памяти ядра.

Вы не можете гарантировать, что все (мета)данные будут правильно записаны на устройство, если вы физически удалите его без вызова umount. Ваш ключ шифрования все еще доступен в памяти, пока вы не вызовете cryptsetup close. Имея это в виду, эти шаги не следует пропускать.

4
27.01.2020, 23:16

Теги

Похожие вопросы