Jak uniemożliwić gpg tworzenie katalogu .gnupg w katalogu osobistym użytkownika

14

Próbuję uruchomić za pomocą gpgnarzędzia do szyfrowania i deszyfrowania plików i chciałbym wiedzieć, czy można uruchomić to narzędzie bez zmiany globalnego stanu użytkownika. W szczególności uruchomienie gpgpo raz pierwszy jako dany użytkownik spowoduje utworzenie .gnupgkatalogu i innych artefaktów w katalogu osobistym użytkownika.

Odniosłem pewien sukces w izolowaniu działania tego polecenia od publicznego i tajnego breloka użytkownika (zobacz mój klejnot Ruby na https://github.com/rcook/rgpg, aby dowiedzieć się, jak to zrobić) i jest to ostatni pozostały zachowanie gpgchciałbym zapobiec.

Richard Cook
źródło

Odpowiedzi:

11

Możesz przekazać mu --homedirargument lub użyć GNUPGHOMEzmiennej środowiskowej, aby zamiast tego używał innego katalogu .gnupg. Jeśli piszesz ten skrypt, możesz utworzyć katalog tymczasowy:

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

A potem posprzątaj, kiedy skończysz:

gpg ...
rm -rfi $GNUPGHOME
Larsks
źródło
4

„Jak uniemożliwić gpg utworzenie katalogu .gnupg”

Miałem ten sam problem, co opisany w tytule pytania podczas sprawdzania niektórych kluczowych odcisków palców na dysku montowanym tylko do odczytu.

Rozwiązaniem, które zastosowałem, było dodanie --no-optionsflagi do gpgpolecenia:

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

Zgodnie z instrukcją :

--no-options

Skrót do opcji --options / dev / null. Ta opcja jest wykrywana przed próbą otwarcia pliku opcji. Użycie tej opcji zapobiegnie również utworzeniu katalogu głównego ~ / .gnupg.

Jeśli gpg nadal drukuje błędy, których nie może odczytać publiczne i tajne klucze użytkownika, przekierowanie je 2>/dev/nullusunie. Należy jednak pamiętać, że kod wyjścia polecenia może być w tym przypadku różny od zera, nawet jeśli drukowane są kluczowe informacje.

Sylvain Leroux
źródło
2
Nie wierzę, że to działa. Uniemożliwia gpg próbę odczytania pliku opcji z katalogu domowego, ale nie uniemożliwia mu zapisu. Nadal występuje błąd, jeśli gpg nie ma uprawnień do zapisu w programie HOME. gpg: keyblock resource /home/u/.gnupg/pubring.gpg ': błąd otwierania pliku gpg: nie można utworzyć/home/u/.gnupg/random_seed': No such file or directory
voxobscuro 12.02.18
1
@voxobscuro: Dokumentacja jest poprawna; błędy można zignorować, ale polecenie nadal działa. Zaktualizuję tę odpowiedź.
kkm
1

--no-options nie działa. nadal tworzy folder .gnupg. Możesz jednak po prostu wykonać tę sztuczkę, aby działała - Wskaż GNUPGHOME na „/ dev / null”

export GNUPGHOME="/dev/null"

Następnie uruchom dowolne polecenie gpg, w ogóle nie utworzy .gnupg.

Ivan Yuan
źródło