Я пытаюсь запустить 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.