gpg: 警告:配置文件的所有权不安全,$gpg --fingerprint 在Ubuntu9.10上的使用

31

当我运行这段代码时,我遇到了这个错误。

gpg --fingerprint

警告:gpg: `/home/dylan/.gnupg/gpg.conf' 配置文件的所有权不安全

问题似乎与权限有关,但我已尝试此代码,似乎没有改变任何东西。通过nautilus检查,我拥有该文件并具有读写权限,并将所有其他设置为“无”。

sudo chmod 600 ~/.gnupg/gpg.conf


dylan@Majuscule:~$ sudo chown -R dylan ~dylan/.gnupg
[sudo] password for dylan: 
dylan@Majuscule:~$ chmod 600 ~/.gnupg/gpg.conf
dylan@Majuscule:~$ chmod 700 ~/.gnupg
dylan@Majuscule:~$ gpg --fingerprint
dylan@Majuscule:~$ sudo gpg --fingerprint
gpg: WARNING: unsafe ownership on configuration file `/home/dylan/.gnupg/gpg.conf'
dylan@Majuscule:~$ ls -al /home/dylan/.gnupg
total 24
drwx------  2 dylan dylan 4096 2010-02-02 13:46 .
drwxr-xr-x 60 dylan dylan 4096 2010-02-02 13:43 ..
-rw-------  1 dylan dylan 9364 2010-01-27 06:34 gpg.conf
-rw-------  1 dylan dylan    0 2010-01-27 06:34 pubring.gpg
-rw-------  1 dylan dylan    0 2010-01-27 06:34 secring.gpg
-rw-------  1 dylan dylan   40 2010-01-27 06:34 trustdb.gpg
dylan@Majuscule:~$ 

1
@Nona:就像我之前说的那样,sudo(8)命令会以“root”(系统管理员)的身份执行命令。当您是root时,您可以做任何事情,您使用chmod(1)更改的权限不涉及“root”。这就是为什么您从gpg(1)收到警告的原因。dylan@Majuscule:~$ gpg --fingerprint 它是否按照预期执行? - emil
2个回答

58

使用sudo运行的命令将以root身份运行。你想做的是拥有这些文件,使其归属于你的用户dylan,对吗?

也许现在root拥有这些文件。可以通过以下方式更改:

sudo chown -R dylan ~dylan/.gnupg

然后作为 dylan

chmod 600 ~/.gnupg/gpg.conf
chmod 700 ~/.gnupg

检查结果:

ls -l ~/.gnupg
ls -ld ~/.gnupg

在输入 ls 命令后,左边的字母代表如下含义:

r 读权限 (4), w 写权限 (2), x 执行权限 (1)

所以 6 = 4 + 2 -> 表示具有读和写权限

而 7 = 4 + 2 + 1 -> 表示具有读、写和执行权限

要进入一个目录,你需要拥有执行权限。

如果你想创建一个只允许遍历但不列出文件的目录,可以执行命令:chmod 100 目录名

欲了解更多信息,请阅读chmod(2)手册。


2
“使用sudo运行的命令将作为root用户运行。” -> 这是一个重要的要点。我也尝试在一些非root用户下运行gpg命令,但我使用了sudo。即使按照您的建议并拥有所有.gnupg/*文件的非root用户,我仍然需要在不使用sudo的情况下运行我的gpg2命令。 - user2490003

5
以dylan身份(即不使用sudo)运行gpg命令,您将不会看到错误。您无需以root身份访问由您的用户拥有的GPG密钥。
相反,您可以通过指定--homedir选项作为root访问另一个用户的GPG密钥。在这种情况下,除非您正在访问root的GPG密钥,否则仍将看到错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接