Назад | Перейти на главную страницу

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

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

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

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

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

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

gpg ...
rm -rfi $GNUPGHOME

"Как запретить 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 подавит их. Обратите внимание, однако, что в этом случае код выхода команды может быть отличным от нуля, даже если информация о ключе распечатана.

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

export GNUPGHOME="/dev/null"

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