我需要逻辑。我们将使用命令“passwd”来更改当前用户的密码。或者将使用“passwd user_name”来更改相应用户的密码。与密码相关的详细信息存储在 /etc/shadow 文件中。我想我是对的。
我的疑问是 1. 每当更改用户密码时,/etc/shadow 文件是否会更新?2. 密码创建是否遵循任何加密方法?3. 如果有任何算法遵循,我们可以将算法反转并找到用户的原始密码吗?4. 是否有其他文件包含有关 linux 密码的详细信息?
我需要逻辑。我们将使用命令“passwd”来更改当前用户的密码。或者将使用“passwd user_name”来更改相应用户的密码。与密码相关的详细信息存储在 /etc/shadow 文件中。我想我是对的。
我的疑问是 1. 每当更改用户密码时,/etc/shadow 文件是否会更新?2. 密码创建是否遵循任何加密方法?3. 如果有任何算法遵循,我们可以将算法反转并找到用户的原始密码吗?4. 是否有其他文件包含有关 linux 密码的详细信息?
1) 每当更改用户密码时,/etc/shadow 文件是否会更新?
是的,该/bin/passwd
程序是 root 的 suid,因此运行它的人将以 root 的权限运行它,因此能够编辑影子文件。
2)密码创建是否遵循任何加密方法?
如果您的意思是影子文件中的密码是否以某种方式被混淆,那么是的,它是散列的。可能是 MD5 或 SHA(或可能是河豚),具体取决于您的 Linux 系统的发行版和年龄。
3)如果有任何算法遵循,我们可以反转算法并找到用户的原始密码吗?
Tha算法是尝试猜测密码,对其进行哈希处理,并将其与影子文件中的内容进行比较。这是蛮力,可能需要很长时间(参见“开膛手约翰”)。尽管有某些可利用的哈希值可以利用,但可能仅在非常特定的情况下而不是您通常可以做的事情。
4) 是否有任何其他文件包含有关 linux 密码的详细信息?
有/etc/passwd
,但不包含哈希。除非 PAM 使用 LDAP 之类的其他东西,否则不应有任何其他地方存储密码。但是大多数发行版的默认安装使用影子文件。