Cách ngăn gpg tạo thư mục .gnupg trong thư mục chính của người dùng


14

Tôi đang cố gắng chạy sử dụng gpgcông cụ để mã hóa và giải mã các tập tin và tôi muốn biết liệu có thể chạy công cụ này mà không thay đổi trạng thái toàn cầu của người dùng hay không. Cụ thể, chạy gpglần đầu tiên với tư cách là một người dùng nhất định sẽ khiến nó tạo ra một .gnupgthư mục và các tạo phẩm khác trong thư mục nhà của người dùng.

Tôi đã thành công trong việc cô lập hoạt động của lệnh này khỏi vòng khóa bí mật và công khai của người dùng (xem viên ngọc Ruby của tôi tại https://github.com/rcook/rgpg để biết cách tôi thực hiện) và đây là lần cuối cùng còn lại hành vi của gpgtôi muốn ngăn chặn.

Câu trả lời:


11

Bạn có thể truyền cho nó --homedirđối số hoặc sử dụng GNUPGHOMEbiến môi trường để sử dụng thư mục khác thay vì .gnupg. Nếu bạn đang viết kịch bản này, bạn có thể tạo một thư mục tạm thời:

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

Và sau đó dọn dẹp khi bạn hoàn thành:

gpg ...
rm -rfi $GNUPGHOME

4

"Cách ngăn gpg tạo thư mục .gnupg"

Tôi gặp vấn đề tương tự như được mô tả trong tiêu đề câu hỏi trong khi kiểm tra một số dấu vân tay chính trên đĩa được gắn chỉ đọc.

Giải pháp tôi đã sử dụng là thêm --no-optionscờ vào gpglệnh:

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

Theo hướng dẫn :

--no-options

Phím tắt cho --options / dev / null. Tùy chọn này được phát hiện trước khi thử mở tệp tùy chọn. Sử dụng tùy chọn này cũng sẽ ngăn chặn việc tạo ra một homedir ~ / .gnupg.

Nếu gpg vẫn in các lỗi mà nó không thể đọc được dây khóa công khai và bí mật của người dùng, việc chuyển hướng 2>/dev/nullsẽ loại bỏ những lỗi này. Tuy nhiên, lưu ý rằng mã thoát của lệnh có thể khác không trong trường hợp này, mặc dù thông tin chính được in.


2
Tôi không tin rằng điều này hoạt động. Nó ngăn gpg cố gắng đọc tệp tùy chọn từ thư mục chính nhưng không ngăn nó cố ghi vào nó. Vẫn còn lỗi nếu gpg không có quyền ghi vào HOME. gpg: keyblock resource /home/u/.gnupg/pubring.gpg ': lỗi mở tệp gpg: không thể tạo/home/u/.gnupg/random_seed': No such file or directory
voxobscuro

1
@voxobscuro: Tài liệu đúng; các lỗi có thể được bỏ qua, lệnh vẫn hoạt động. Tôi sẽ cập nhật câu trả lời này.
kkm

1

--no-Tùy chọn không hoạt động. nó vẫn tạo thư mục .gnupg. Tuy nhiên, bạn chỉ có thể thực hiện thủ thuật này để làm cho nó hoạt động - Điểm GNUPGHOME thành "/ dev / null"

export GNUPGHOME="/dev/null"

Sau đó chạy bất kỳ lệnh gpg nào, nó sẽ không tạo .gnupg cả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.