密码存储在unix文件系统中的哪个位置?
它们是直接存储在etc目录中还是存储在其他目录中 - 谁可以查看未加密的密码?
答案 0 :(得分:4)
取决于。
如果UNIX框在本地管理自己的密码,它将在/etc/shadow
中(虽然在过去几天我们使用/etc/passwd
。root是唯一可以访问该文件的用户,它只以散列形式存储。
如果使用集中密码,您可能会发现一些商店正在使用NIS / NIS +,但大多数将使用LDAP,在这种情况下,密码存储在集中式LDAP目录中(OpenLDAP,Active Directory等)再次,以散列的形式。
明文密码是过去的遗物,如果存在,则表示存在一些hackery或一些本地写得不好的应用程序。
答案 1 :(得分:3)
unix中的密码最初存储在/etc/passwd
(世界可读)中,但随后移至/etc/shadow
(并备份在/ etc / shadow-中),只能由root读取(或影子组的成员)。
密码被加盐和散列。默认格式为MD5-crypt, bcrypt, sha256-crypt, sha512-crypt
,由于历史原因DES(注意DES仅允许8字节密码)。注意,sha512-crypt通常涉及5000轮SHA512密码,并且轮数可配置。
有关详细信息,请参阅man crypt, man shadow, man passwd
。
答案 2 :(得分:2)
较早的UNIX变体将加密密码与{1}}中的加密密码一起存储在每个帐户的其他信息中。
较新的人在/etc/passwd
的相关字段中只有一个*
并使用/etc/passwd
来存储密码,部分原因是为了确保只有在需要时才能获得对密码的读取权限其他内容(/etc/shadow
通常比shadow
更强烈地受到保护。
任何有足够权力的人都可以通过直接检查内存,或者替换passwd
程序或其他任何一种方法来查看未加密的密码。但是,说实话,如果它们功能强大,它们已经拥有了所有文件,因此密码无关紧要(除非您在多个系统上使用相同的密码)。
您还可以找到存储在LDAP等中央存储库中的密码,它会完全删除各个方框中的密码。
答案 3 :(得分:1)
密码哈希传统上存储在/etc/passwd
中,但现代系统将密码保存在与公共用户数据库不同的文件中。 Linux使用/etc/shadow
。您可以将密码放在/etc/passwd
中(它仍然支持向后兼容),但您必须重新配置系统才能执行此操作。
https://security.stackexchange.com/questions/36970/is-user-password-in-ubuntu-13-04-in-plain-text
https://security.stackexchange.com/questions/37050/where-is-my-password-stored-on-linux