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:~$ 
4

2 回答 2

57

运行的命令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 the_directory.

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

于 2010-02-02T09:40:21.493 回答
5

以 dylan 身份运行 gpg 命令(即不使用 sudo),您将不会看到错误。您无需成为 root 即可访问您的用户拥有的 GPG 密钥。

相反,您可以通过指定--homedir选项以 root 身份访问另一个用户的 GPG 密钥。在这种情况下,您仍然会看到错误,除非您正在访问 root 的 GPG 密钥。

于 2017-05-24T13:43:34.927 回答