如何防止gpg在用户的主目录中创建.gnupg目录


14

我正在尝试使用该gpg工具来加密和解密文件,并且我想知道是否有可能在不更改用户全局状态的情况下运行该工具。具体来说,gpg第一次以给定用户身份运行将导致它.gnupg在用户的主目录中创建目录和其他工件。

我已经成功地将该命令的操作与用户的公共和秘密钥匙圈隔离开了(有关此操作,请参见https://github.com/rcook/rgpg上的 Ruby gem ),这是最后一个gpg我想防止的行为。

Answers:


11

你可以通过它的--homedir参数,或者使用GNUPGHOME环境变量有它使用另一个目录,而不是.gnupg。如果编写脚本,则可以创建一个临时目录:

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

然后在完成后进行清理:

gpg ...
rm -rfi $GNUPGHOME

4

“如何防止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将抑制这些错误。但是请注意,即使打印了键信息,在这种情况下命令的退出代码也可能不为零。


2
我认为这行不通。它阻止gpg尝试从主目录读取选项文件,但不阻止gpg尝试写入该文件。如果gpg没有写入HOME的权限,仍然会出错。gpg: keyblock resource /home/u/.gnupg/pubring.gpg':文件打开错误gpg:无法创建/home/u/.gnupg/random_seed': No such file or directory
voxobscuro

1
@voxobscuro:文档是正确的;错误可以忽略,尽管该命令仍然有效。我将更新此答案。
kkm

1

--no-options不起作用。它仍然会创建.gnupg文件夹。但是,您只需执行此技巧即可使其工作-将GNUPGHOME指向“ / dev / null”

export GNUPGHOME="/dev/null"

然后运行任何gpg命令,它将根本不会创建.gnupg。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.