我正在尝试使用该gpg
工具来加密和解密文件,我想知道是否可以在不改变用户全局状态的情况下运行此工具。具体来说,gpg
首次以给定用户身份运行会导致它.gnupg
在用户的主目录中创建一个目录和其他工件。
我已经成功地将该命令的操作与用户的公钥和私钥环隔离开来(请参阅我的 Ruby gemhttps://github.com/rcook/rgpggpg
关于我如何做到这一点),这是我想要阻止的最后一个行为。
答案1
您可以向其传递参数--homedir
或使用GNUPGHOME
环境变量让其使用另一个目录而不是.gnupg
。如果您正在编写此脚本,则可以创建一个临时目录:
GNUPGHOME=$(mktemp -d $HOME/.gnupgXXXXXX)
export GNUPGHOME
完成后进行清理:
gpg ...
rm -rfi $GNUPGHOME
答案2
“如何防止 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 homedir。
如果 gpg 仍然打印无法读取用户的公钥和私钥环的错误,则重定向2>/dev/null
将抑制这些错误。但请注意,在这种情况下,即使打印了密钥信息,命令的退出代码也可能为非零。
答案3
--no-options 不起作用。它仍然会创建 .gnupg 文件夹。但是,您可以简单地使用这个技巧来使其工作 - 将 GNUPGHOME 指向“/dev/null”
export GNUPGHOME="/dev/null"
然后运行任何 gpg 命令,它根本不会创建 .gnupg。