我如何阻止/etc/passwd
除 root 之外的所有用户使用该文件?
答案1
首先,我们应该注意到,在现代系统中,/etc/passwd 实际上不包含任何密码,它只包含基本的帐户信息。在 Linux 系统上,包含密码的文件是 /etc/shadow,它实际上并不包含密码,而是包含密码的加密生成的哈希值(在基于 FreeBSD 的系统(包括 OSX)上,该文件是 /etc/master.passwd)。
默认情况下,这两个文件应该已经具有保证其安全的权限,这是我的一个 Linux 系统上的 /etc/password:
jed@jed-bt:~$ ls -la /etc/passwd
-rw-r--r-- 1 root root 1797 Feb 11 13:13 /etc/passwd
请注意,您需要保持 /etc/passwd 的全局可读性,否则会出现问题,如上一个答案所述。因此,要重置这些文件的读/写权限,您可以运行以下命令
chmod 644 /etc/passwd
如果该文件的所有者不是 root,您也可以运行
chown root:root /etc/passwd
来重置它。当然,您要么必须以 root 身份运行chown
和chmod
命令,要么使用sudo
。
答案2
它必须是全世界可读的,否则系统将崩溃。
答案3
正如 Dennis Williamson 所说:它必须是可读的。并且所有密码都以散列字符串的形式存在于“影子”中,因此它实际上不可利用。
如果您想要更高的安全性,请考虑使用 LDAP 等其他身份验证系统。