你如何阻止/ etc / passwd文件

除root以外,如何阻止所有用户的/etc/passwd文件?

首先,我们应该注意到,在现代系统中,/ 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身份运行chownchmod命令,要么使用sudo

它必须是世界可读的,否则系统将会中断。

正如丹尼斯·威廉姆森(Dennis Williamson)所说:它必须是可读的 所有的密码都像散列的string一样“隐藏”,所以它不是真的可以被利用。

如果您希望获得更高的安全性,请考虑使用其他身份validation系统,如LDAP