Как запретить gpg создавать каталог .gnupg в домашнем каталоге пользователя

14

Я пытаюсь использовать gpgинструмент для шифрования и дешифрования файлов, и я хотел бы знать, возможно ли запустить этот инструмент без изменения глобального состояния пользователя. В частности, gpgпри первом запуске данного пользователя он создает .gnupgкаталог и другие артефакты в домашнем каталоге пользователя.

У меня был некоторый успех в изоляции этой команды от набора открытых и секретных ключей пользователя (см. Мой гем Ruby на https://github.com/rcook/rgpg, как это сделать), и это последний оставшийся поведение gpgя хотел бы предотвратить.

Ричард Кук
источник

Ответы:

11

Вы можете передать ему --homedirаргумент или использовать GNUPGHOMEпеременную окружения, чтобы он использовал другой каталог вместо .gnupg. Если вы пишете это, вы можете создать временный каталог:

GNUPGHOME=$(mktemp -d $HOME/.gnupgXXXXXX)
export GNUPGHOME

А потом почистите, когда закончите:

gpg ...
rm -rfi $GNUPGHOME
larsks
источник
4

"Как запретить gpg создавать каталог .gnupg"

У меня была та же проблема, которая описана в заголовке вопроса при проверке некоторых ключевых отпечатков на монтированном диске только для чтения.

Решением, которое я использовал, было добавление --no-optionsфлага в gpgкоманду:

gpg --no-options  \
    --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Согласно инструкции :

--no-options

Ярлык для --options / dev / null. Эта опция обнаруживается перед попыткой открыть файл опции. Использование этой опции также предотвратит создание домашнего каталога ~ / .gnupg.

Если gpg по-прежнему печатает ошибки, которые он не может прочитать открытыми и секретными цепочками ключей пользователя, перенаправление 2>/dev/nullбудет подавлять их. Обратите внимание, однако, что код выхода команды может быть ненулевым в этом случае, даже если информация о ключе напечатана.

Сильвен Леру
источник
2
Я не верю, что это работает. Это препятствует тому, чтобы gpg попытался прочитать файл параметров из домашнего каталога, но не препятствует тому, чтобы он попытался записать в него. Все равно выдает ошибку, если у gpg нет разрешения на запись в HOME. gpg: keyblock resource /home/u/.gnupg/pubring.gpg ': ошибка открытия файла gpg: не удается создать/home/u/.gnupg/random_seed': No such file or directory
voxobscuro
1
@voxobscuro: документация правильная; ошибки можно игнорировать, хотя команда все еще работает. Я обновлю этот ответ.
км
1

--no-options не работает. он все еще создает папку .gnupg. Однако вы можете просто сделать этот трюк, чтобы заставить его работать - укажите GNUPGHOME на "/ dev / null"

export GNUPGHOME="/dev/null"

Затем запустите любую команду gpg, она вообще не создаст .gnupg.

Иван Юань
источник