Cara mencegah gpg dari membuat direktori .gnupg di direktori home pengguna

14

Saya mencoba menjalankan menggunakan gpgalat untuk mengenkripsi dan mendekripsi file dan saya ingin tahu apakah mungkin untuk menjalankan alat ini tanpa itu mengubah keadaan global pengguna. Secara khusus, menjalankan gpguntuk pertama kalinya sebagai pengguna yang diberikan akan menyebabkannya membuat .gnupgdirektori dan artefak lain di direktori home pengguna.

Saya telah berhasil mengisolasi operasi perintah ini dari cincin kunci publik dan rahasia pengguna (lihat permata Ruby saya di https://github.com/rcook/rgpg untuk mengetahui bagaimana saya melakukan ini) dan ini adalah yang terakhir tersisa perilaku gpgsaya ingin mencegah.

Richard Cook
sumber

Jawaban:

11

Anda bisa memberikan --homedirargumen atau menggunakan GNUPGHOMEvariabel lingkungan untuk menggunakannya menggunakan direktori lain .gnupg. Jika Anda membuat skrip ini, Anda dapat membuat direktori sementara:

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

Dan kemudian bersihkan setelah selesai:

gpg ...
rm -rfi $GNUPGHOME
larsks
sumber
4

"Cara mencegah gpg dari membuat direktori .gnupg"

Saya memiliki masalah yang sama seperti yang dijelaskan dalam judul pertanyaan sambil memeriksa beberapa sidik jari kunci pada disk yang hanya dapat dibaca.

Solusi yang saya gunakan adalah menambahkan --no-optionstanda pada gpgperintah:

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

Sesuai manual :

--no-options

Pintasan untuk --options / dev / null. Opsi ini terdeteksi sebelum upaya untuk membuka file opsi. Menggunakan opsi ini juga akan mencegah pembuatan homedir ~ / .gnupg.

Jika gpg masih mencetak kesalahan yang tidak dapat membaca keyrings publik dan rahasia pengguna, pengalihan 2>/dev/nullakan menekan ini. Perhatikan, bagaimanapun, kode keluar dari perintah mungkin tidak nol dalam hal ini, meskipun informasi utama dicetak.

Sylvain Leroux
sumber
2
Saya tidak percaya ini berhasil. Ini mencegah gpg dari mencoba membaca file opsi dari direktori home tetapi tidak mencegahnya dari mencoba menulis ke sana. Masih kesalahan jika gpg tidak memiliki izin untuk menulis ke HOME. gpg: keyblock resource /home/u/.gnupg/pubring.gpg ': kesalahan buka file gpg: tidak dapat membuat/home/u/.gnupg/random_seed': No such file or directory
voxobscuro
1
@voxobscuro: Dokumentasinya benar; kesalahan bisa diabaikan, perintah tetap bekerja sekalipun. Saya akan memperbarui jawaban ini.
kkm
1

--no-opsi tidak berfungsi. masih membuat folder .gnupg. Namun, Anda bisa melakukan trik ini agar berhasil - Arahkan GNUPGHOME ke "/ dev / null"

export GNUPGHOME="/dev/null"

Kemudian jalankan perintah gpg, itu tidak akan membuat .gnupg sama sekali.

Ivan Yuan
sumber