2

У меня есть раздел на жестком диске, который зашифрован с помощью dm-crypt с использованием ключевой фразы. То, что я хочу сделать, - это всплывающее окно с запросом пароля, когда какая-либо программа пытается прочитать файл в этой целевой точке монтирования разделов.

Например. Я обычно монтирую свой том dm-crypt в каталог /mnt/crypt . При подключении внутри этого каталога находится папка "Музыка", в которой находится файл goodmusic.mp3. Таким образом, путь /mnt/crypt/Music/goodmusic.mp3.

Если я запускаю Clementine и пытаюсь воспроизвести этот файл без смонтированного зашифрованного тома, я получу ошибку "file not found".

Что я хочу сделать, так это то, что когда Клементина пытается открыть файл в этом каталоге (/mnt/crypt), появляется всплывающее окно с запросом моего пароля для монтирования и монтирования тома. Я предполагаю, что для того, чтобы это работало, системный вызов "read" должен блокироваться, пока отображается приглашение на ввод пароля, чтобы системный вызов read не сразу же сообщал об ошибке, прежде чем я смог набрать ключевая фраза.

Это возможно?

Я играл с inotify, но он не поддерживает события для несуществующих файлов.

1 ответ1

1

(1)
inotify не сообщает о попытках доступа / чтения / записи к несуществующим файлам.
На самом деле, они не рассматриваются как события, потому что эти файлы не существуют вообще.

(2)

Что я хочу сделать, так это то, что когда Клементина пытается открыть файл в этом каталоге (/mnt/crypt), появляется всплывающее окно с запросом моего пароля для монтирования и монтирования тома. Я предполагаю, что для того, чтобы это работало, системный вызов "read" должен блокироваться, пока отображается приглашение на ввод пароля, чтобы системный вызов read не сразу же сообщал об ошибке, прежде чем я смог набрать ключевая фраза.

Это довольно сложно. Одно из возможных решений - перехватить open системный вызов glibc и переопределить вашу собственную версию. Ваша версия open просто действует так, как вы описываете, в зависимости от файла / каталога, к которому пытается получить доступ процесс.

ссылка:
http://en.wikipedia.org/wiki/Hooking
http://www.gilgalab.com.br/hacking/programming/linux/2013/01/11/Hooking-Linux-3-syscalls/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .