为什么/ etc / shadow的文件权限设置为600?

Modified on: Thu, 14 Jun 2018 04:35:23 +0800

/etc/shadow的权限为600,这意味着除root之外的任何人都无法读取。

但是,由于其中的所有密码都不是以明文形式存储,而是以哈希值存储(这意味着无法从哈希中计算原始密码),为什么每个人都不能阅读它?

最佳答案

防止离线暴力攻击。

即使您无法撤消散列,您仍然可以尝试散列每个可能的密码,直到找到匹配项,并且您可以通过良好的硬件和本地文件访问权限每秒进行数百万次尝试。

如果文件具有644权限,则即使在访客会话中登录系统的任何人都可以将此文件从您的计算机上复制 (无论是USB记忆棒还是远程scp)并尝试离线暴力攻击,而不会在计算机上留下任何此类证据


请注意,Ubuntu上的权限实际上是640,而不是600

$ ls -l /etc/shadow
-rw-r----- 1 root shadow 1239 Jun 25 04:35 /etc/shadow

但这并不重要,因为其他人仍然没有权限,默认情况下,shadow组中没有人。


最初,哈希存储在/etc/passwd(这就是为什么它被称为passwd),就像在Linux创建时一样,破解哈希,即使是弱当时使用的类型实际上是不可能的。然而,最终,处理能力提升到破解散列的程度,至少是相对较弱的密码,变得可行。

/etc/passwd的权限更改为640600是不行的,因为有许多合理的理由可以以正常用户身份读取/etc/passwd(将UID转换为用户名,获取用户的全名,电话号码等),以便将哈希值移至/etc/shadow,获得640权限。在x中代替用户的密码哈希字段的/etc/passwd用于表示该用户的哈希存储在/etc/shadow而不是。


相关问答

添加新评论