Gpg

如何防止 gpg 在使用者的主目錄中創建 .gnupg 目錄

  • December 7, 2018

我正在嘗試使用該gpg工具來加密和解密文件,我想知道是否可以在不改變使用者全域狀態的情況下執行該工具。具體來說,gpg作為給定使用者第一次執行將導致它.gnupg在使用者的主目錄中創建一個目錄和其他工件。

我已經成功地將這個命令的操作與使用者的公共和秘密密鑰環隔離開來(請參閱我在https://github.com/rcook/rgpg上的 Ruby gem 了解我是如何做到這一點的),這是最後剩下的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將抑制這些。但是請注意,在這種情況下,即使列印了關鍵資訊,命令的退出程式碼也可能不為零。

引用自:https://serverfault.com/questions/528351