我们都知道它保存着密码。但是 cat-ing 它什么也得不到。甚至没有加密的乱码。那么密码究竟是如何存储在里面的呢?这像是一个设备文件还是什么?
答案1
简单介绍一下历史背景:
很久以前,/etc/passwd 文件保存了有关用户的各种信息,不仅包括用户密码的加密版本,还包括用户的主目录、组、默认 shell 和名称等信息。这很方便,许多系统实用程序将 /etc/passwd 文件用于各种目的。只存储密码的加密版本的做法比将真实密码存储在(希望)受保护的文件中是一个巨大的进步,加密算法可以调整得足够快以实用,但又足够慢,使得暴力破解在当代硬件上不切实际。
当时,Unix 通常用于研究和学术环境,安全性并不是什么大问题(但在 1988 年,这一想法被证明是一个坏主意,因为罗伯特·莫里斯蠕虫)随着密码在越来越恶劣的环境中被使用,以及计算机能力的提高,单纯依靠加密已经越来越不切实际,因此将密码移至不太容易访问的文件中变得可取。
现在,有大量不同类型的程序使用 /etc/passwd 来存储隐藏的信息,而逐一修改它们并不现实。因此,密码被放入一个新文件(通常是 /etc/shadow),该文件尽可能锁定除 root 之外的所有帐户,而其他所有信息则保留。
答案2
在 Linux 上,密码存储在 /etc/shadow 中,在 BSD 系统上,密码存储在 /etc/master.passwd 中。
答案3
将密码存储在 /etc/password 中已经是过去的事情了。/etc/passwd 用于存储简单的用户信息,如 UID、用户名、真实姓名等。它还有一个字段告诉您该帐户是否有密码,如果有,您应该查看 /etc/passwd