Расшифруйте и смонтируйте зашифрованный каталог 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). Затем вы можете записывать и читать из дескриптора основного файла, чтобы обеспечить ввод соответственно. читать выходные данные дочернего процесса.

Другие вопросы по тегам