Расшифруйте и смонтируйте зашифрованный каталог eCryptFS с помощью внешнего скрипта C ++ в Linux - PullRequest
0 голосов
/ 05 февраля 2019

Я хочу расшифровать и смонтировать частный каталог eCryptfs по умолчанию, выполнив команду терминала ecryptfs-mount-private в C ++ и предоставив парольную фразу / пароль из того же сценария C ++.

Я попытался разветвить, затем выполнить оболочку (/ bin / sh) и открыть каналы для ввода-вывода с помощью sh, но при попытке записи через канал я получаю следующую ошибку:

stty: стандартный ввод: неподходящий ioctl для устройства

Я полагаю, это потому, что ecryptfs-mount-private принимает ввод только для ключевой фразы с клавиатуры.

Как мне добиться такого типа механизма дешифрования и монтирования?Возможные способы сделать это или любые обходные пути будут полезны.

PS.Проблема безопасности хранения ключевой фразы в коде C ++ не является проблемой в моем сценарии.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

ecryptfs-mount-private - это /bin/sh сценарий оболочки (и относительно короткий, всего около 65 строк без комментариев), так что вы можете попробовать запустить «преобразование» некоторых из них в C ++ и / или запустить оставшиеся командные строки оболочки по одной за раз.время с system().

0 голосов
/ 05 февраля 2019

ecrypt-mountfs-private ожидает подключения к терминалу.Одним из решений является использование forkpty (2) вместо fork, что обеспечит доступ дочернего процесса к pty (псевдо-tty).Затем вы можете записывать и читать из дескриптора основного файла, чтобы обеспечить ввод соответственно.читать вывод дочернего процесса.

...