1

Я хотел бы открыть зашифрованный PDF-документ, не сохраняя его расшифрованное содержимое на моем диске / виртуальном диске с помощью стандартного средства просмотра документов.

Я уже пробовал что-то вроде

gpg --decrypt foo.pdf.gpg | evince /dev/stdin

Но это не работает.

Все помогает!

1 ответ1

1

Читая ваш комментарий, я думаю, что вы можете создать временный файл и уничтожить его при выходе из evince.

gpg --output bar.$$.pdf --decrypt foo.pdf.gpg ; evince bar.$$.pdf ; rm bar.$$.pdf

(Обратите внимание, что с $$ вы берете PID текущего сеанса BASH).

Если вы хотите повысить безопасность, вы можете создать небольшой скрипт, который выполняет вышеупомянутые команды и wait окончания evince в subshell () . Вы можете начать с чего-то вроде следующего: chmod u+x foobar.sh чтобы сделать его исполняемым.

#!/bin/bash

FileToDecript=${1}                 # pass the name as 1st parameter
[ $# != 1 ] && exit 1;             # exit if you forget about it
FileOut="temp.$$.pdf"              # temporary filename with the bash PID
gpg --output $FileOut --decrypt $FileToDecript ;
[ ! $? -eq 0 ] && exit 2;          # exit if failed to decrypt

                                   # The following run in a subshell (...)
( evince $FileOut  &                  # evince runs in background
  wait $!                             # here wait evince ends
  rm $FileOut ) &                     # here remove the file
                                   # the subshell is executed in background `&`

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

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