此特定场景中目录和文件权限之间的差异

此特定场景中目录和文件权限之间的差异

最近我正在学习基于 SSH 的身份验证来连接到 Web 服务器。该帖子推荐了某些文件权限。本地计算机的 .ssh 文件夹必须具有 700 的目录权限,其中的内容(例如密钥必须具有 640 的文件权限) 。

没有意义的是,如果我为所有者设置 rwx 权限,而为该目录的组和其他人设置任何权限,则意味着该组和其他人无法列出或 cd 到该目录。那么进一步的意义何在为其中的文件设置 640 的权限(即该组的 rw,其他人没有权限)?该组或其他人首先无法读取或移动到该目录。

答案1

您是正确的,内部权限在功能上与给定的目录结构和权限无关,但您缺少一件事。硬链接共享权限。

在上面的示例中,如果您创建指向其他位置的硬链接(不是符号链接)~/.ssh/id_rsa,则生成的文件将镜像 的权限~/.ssh/id_rsa,因此,如果他们的用户可以通过您的访问权限访问它,那么人们将能够访问它主目录,或者通过新位置。

因此,SSH 要求实际上没有技术上应有的严格(理想情况下,该目录中的私钥需要具有 0600,而不是 0640 的权限),但大多数人不再了解或关心硬链接(与符号链接(可以跨越文件系统边界)或引用链接(当链接之一被写入时,它将在所有情况下正确分割链接)相比,它们并不是很有用。

至于其他的文件,还是有一定的安全要求的。尤其:

  • .ssh/authorized_keys文件包含有关您还可以访问的其他公钥的信息。
  • .ssh/known_hosts文件包含有关您已连接到哪些系统的信息(OpenSSH 实际上提供了在没有权限的情况下使用主机名和 IP 地址上的单向哈希来保护此系统的功能)。
  • 密钥的公共部分可用于与.ssh/authorized_keys其他系统进行匹配以关联帐户,或者理论上可以攻击您的私钥(尽管第二种情况主要是理论上的,除非您面对的是政府级别的对手)。

所有这些文件都可用于找出窃取您信息的其他潜在位置,因此最好受到保护。

相关内容