Расшифруйте и смонтируйте зашифрованный каталог eCryptFS с помощью внешнего скрипта C++ в Linux
Я хочу расшифровать и смонтировать частный каталог eCryptfs по умолчанию, выполнив команду терминала ecryptfs-mount-private в C++ и предоставив пароль / пароль из того же сценария C++.
Я попытался разветвить, затем выполнить оболочку (/bin/sh) и открыть каналы для ввода-вывода с помощью sh, но при попытке записи через канал я получаю следующую ошибку:
stty: стандартный ввод: неподходящий ioctl для устройства
Я думаю, это потому, что ecryptfs-mount-private принимает ввод только для ключевой фразы с клавиатуры.
Как я могу добиться такого типа расшифровки и монтирования механизма? Возможные способы сделать это или любые обходные пути будут полезны.
PS. Забота о безопасности хранения ключевой фразы в коде C++ не является проблемой в моем сценарии.
Спасибо!
2 ответа
ecryptfs-mount-private
это /bin/sh
сценарий оболочки (и относительно короткий, всего около 65 строк без комментариев), так что вы можете попробовать запустить "преобразование" некоторых из них в C++ и / или запустить оставшиеся командные строки оболочки по одной с system()
,
ecrypt-mountfs-private
ожидает подключения к терминалу. Одним из решений является использование forkpty
(2) вместо fork
, который обеспечит доступ дочернего процесса к pty (псевдо-tty). Затем вы можете записывать и читать из дескриптора основного файла, чтобы обеспечить ввод соответственно. читать выходные данные дочернего процесса.