为什么/ etc / passwd对公众开放以供阅读?


12

有什么理由应该使/ etc / passwd在世界范围内可读?并不是不应该公开密码散列,我只是想知道为什么。


1
我认为,当您选择的shell知道要扩展~user到用户的主目录时,实际上是在中查找该目录/etc/passwd,因此最好使它具有可读性,而不是赋予所有shell较高的权限。
乌尔里希·施瓦茨

展开“〜”是$ HOME变量的功能-将$ HOME设置为/ var / tmp,然后如果执行“ cd〜”-它将更改为/ var / tmp。
Saurabh Hirani

Answers:


14

/etc/passwd有时称为用户数据库。那应该给我们一个线索,说明为什么每个人都必须阅读它。任何检查文件元数据的实用程序都必须能够读取/etc/passwd(和/etc/group),以便能够将内核及其子系统使用的数字ID解析为我们所依赖的人性化名称。需要查找主目录的工具(邮件传递代理等)会在中查找该信息/etc/passwdinet小型服务器则喜欢在中fingerd查找您的详细信息/etc/passwd

正如其他地方指出的那样,文件中没有特别敏感的数据,因为现代系统将密码散列放在影子密码文件中,该密码只能由root读取。


6
那么,实际上是因为历史原因而调用passwd此名称并不能反映文件中的内容吗?
伊曼纽尔·伯格

8
是的,我想是这样。在UNIX的早期版本中,密码确实存储在其中/etc/passwd(最初未加密!)。到将密码哈希移出到影子文件时,已经存在许多实用程序,这些实用程序依赖于中的其他信息/etc/passwd,因此名称被卡住了。
D_Bye 2012年

7

/etc/passwd不包含密码哈希(因此这不是大问题)。/etc/shadow包含密码哈希,并且只能由root(和shadow组)读取


1
在某些设置中,密码甚至不在该文件中,因为它们在LDAP或其他受保护的后端中!
蒂姆(Tim)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.