我在 Linux Mint 17.2 Cinnamon 上的主目录中发现了一个奇怪的目录(尽管我非常有信心它在所有 Linux 发行版上都存在),名为 .gnupg。除 root 之外的任何人都无法访问它。所以我有三个问题:
- 这个目录是什么?它包含什么?
- 为什么它被放置在用户的主目录中但不给他们任何访问权限?
- 仅以 root 身份进入目录会有什么危害吗?
答案1
大多数点文件的名称类似于使用它的应用程序。不出所料,.gnupg
被使用GnuPG。 GnuPG(也称为 GPG)是一种对文件进行加密和签名的程序。当您第一次调用它时,它将.gnupg
在您的主目录中创建一个目录并在其中创建一些文件。该目录包含大量私人信息(例如您的联系人是谁),因此只有所有者才能访问。例如,如果有人向您发送了一封签名电子邮件,则可能会发生这种情况;如果您的电子邮件客户端支持 PGP 电子邮件,那么它将尝试验证签名(并且会失败,因为您的 GPG 密钥环中没有发件人的公钥)。
这里真正的问题是为什么你的主目录中的这个目录由root拥有。答案是您以 root 身份运行 GPG,但HOME
设置为您自己的主目录。或者,更准确地说,您运行了一个在幕后运行 GPG 的程序。 APT 就是这样的程序:包管理工具(apt-get
、apt
、aptitude
等)使用 GPG 来验证您下载的包是否是正版的。如果您运行类似的命令sudo apt-get install SOMEPACKAGE
,这将.gnupg
在您的主目录中创建一个目录,因为sudo
默认情况下不会更改主目录。
修复方法是删除该.gnupg
目录,然后在您的用户下创建它。您可以只删除 root 拥有的目录 ( sudo rm -r ~/.gnupg
):您的主目录下的任何文件对您来说都是公平的游戏。您也可以将其移至 root 的主目录 ( sudo mv ~/.gnupg /root
),但它无论如何都不包含任何重要内容。然后运行 GPG 命令,例如gpg --list-keys
;这将~/.gnupg
用空的密钥环文件填充您的目录。
仅仅输入一个目录总是无害的。列出文件并查看其内容通常是无害的,但是在某些配置中它可能是有害的,因为终端会解析应用程序打印的转义序列。在 Linux 下,plainls
或ls -l
都可以,但ls -N
存在潜在风险。普通cat filename
是有风险的,但less filename
也很好(反之则less +R filename
有风险)。该.gnupg
目录中没有任何有害内容。
答案2
该目录~/.gnupg
是 GnuPG(GNU Privacy Guard)的配置文件所在的位置。这是一种常见的密码学工具(参见https://www.gnupg.org/)。
它的权限应该允许您访问,也许其他人也不能访问。如果该目录由系统上的 root 用户拥有,那就很奇怪了。是不是真的?通过运行来检查ls -ld ~/.gnupg
。
该目录本身不会造成任何损害,您可以查看里面的内容。