Nat*_*ese 47 linux encryption permissions gnupg
我不想只是 chmod 并运行直到我得到正确的答案,我也不想以 root 身份运行 GnuPG。简单的解决方法是将它设置为只有我的用户可以阅读它,但我认为这不是最好的方法。
尝试使用 gpg 时出现以下错误:
gpg: WARNING: unsafe enclosing directory permissions on configuration file `/home/nb/.gnupg/gpg.conf'
gpg: external program calls are disabled due to unsafe options file permissions
gpg: keyserver communications error: general error
gpg: keyserver receive failed: general error
Run Code Online (Sandbox Code Playgroud)
GnuPG 的~/.gnupg/现状:
% stat .gnupg
File: ‘.gnupg’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 1bh/27d Inode: 20578751 Links: 3
Access: (0775/drwxrwxr-x) Uid: ( 1000/ nb) Gid: ( 1000/ XXXX)
Access: 2015-08-09 18:14:45.937760752 -0700
Modify: 2015-08-05 20:54:32.860883569 -0700
Change: 2015-08-05 20:54:32.860883569 -0700
Birth: -
Run Code Online (Sandbox Code Playgroud)
以下链接中的答案建议该~/gnupg/gpg.conf文件具有600 个权限,但是封闭文件夹是否也需要这些权限?
Ale*_*ies 86
是的,您还需要修复封闭目录的权限 ~/.gnupg
因为对该文件夹拥有足够权限的攻击者可以操纵文件夹内容。
执行以下命令:
确保文件夹+内容属于您:
chown -R $(whoami) ~/.gnupg/
.gnupg和子文件夹的正确访问权限:
find ~/.gnupg -type f -exec chmod 600 {} \;
find ~/.gnupg -type d -exec chmod 700 {} \;
解释600,700:
让我们从后面开始:“00”意味着对于不是文件/目录所有者的每个人都没有任何权利。
这意味着,读取这些 (gnupg) 的进程必须作为这些文件/目录的所有者运行。
~/.gnupg/是一个文件夹,读取内容的进程必须能够“进入”(=执行)这个文件夹。这是“x”位。它的值为“1”。7 - 6 = 1
双方~/.gnupg/并~/.gnupg/*要能够读取和写入,多数民众赞成4 + 2 = 6。
==> 现在只有文件的所有者可以读/写它们 (=600)。只有他可以进入目录(=700)
==> 这些文件权限不需要“记录”,它们可以从预期用途中推导出来。
有关权限符号的更多信息:https : //en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions
Jen*_*rat 11
GnuPG 默认强制执行安全访问权限,这意味着没有其他人(除了您)可以访问您的 GnuPG 主目录~/.gnupg。从另一台机器复制 GnuPG 主目录后,这些访问权限通常不够严格,并且经常错误的所有权是此类消息的原因。
# Set ownership to your own user and primary group
chown -R "$USER:$(id -gn)" ~/.gnupg
# Set permissions to read, write, execute for only yourself, no others
chmod 700 ~/.gnupg
# Set permissions to read, write for only yourself, no others
chmod 600 ~/.gnupg/*
Run Code Online (Sandbox Code Playgroud)
如果您(出于任何原因)在 中创建了自己的文件夹~/.gnupg,则还必须另外向该文件夹应用执行权限。文件夹需要执行权限才能打开。
这两行将分别正确地设置目录和文件的权限:
find ~/.gnupg -type d -exec chmod 700 {} \;
find ~/.gnupg -type f -exec chmod 600 {} \;
Run Code Online (Sandbox Code Playgroud)
假设所有权已正确设置。
请注意,它不会更改套接字上的权限S.gpg-agent*。(只有新的 gpg v2 涉及套接字,旧的 gpg v1 不涉及)。
小智 5
尽管 Jens Erat 在他的最后一句话中已经提到了这一点,但我认为应该强调 ~/.gnupg 中的任何文件夹也必须是可执行的(模式 700)。这尤其适用于 gpg 本身创建的 private-keys* 文件夹。在我注意到这一点之前,我被许可问题困扰了一段时间。
| 归档时间: |
|
| 查看次数: |
30997 次 |
| 最近记录: |