etc_passwd 与 etc_shadow文件的区别

  1. 查看 /etc/passwd 文件:
  2. 查看 /etc/shadow 文件:

前言:这周面试问到了这个问题,只知道这俩文件存着用户密码,不知道有啥区别。因此来总结一下。


Linux系统中,所有用户(包括系统管理员)的账号和密码都可以在 /etc/passwd 和 /etc/shadow 这两个文件中找到,其中 shadow 是 passwd 的影子文件。

早期 /etc/passwd 文件直接存放加密后的密码,前两位是盐值,是一个随机数,后面跟的是加密的密码。为了安全,现在的 Linux 都提供了 /etc/shadow 这个影子文件,密码放在这个文件里面,并且是只有 root 可读的,从而保证了安全。

查看 /etc/passwd 文件:


/etc/passwd文件每一行的字段分别是:

用户名:密码:用户id:组id:用户信息:主目录:shell 

例:

root:x:0:0:root:/root:/bin/bash

在利用了 shadow 文件的情况下,密码用一个 x 表示,普通用户看不到任何密码信息。影子文件保存加密的口令,/etc/passwd 文件中的密码全部变成x。

查看 /etc/shadow 文件:


/etc/shadow文件每一行的字段分别是:

  1. 用户名,与 /etc/passwd 文件中的用户名相对应。
  2. 加密后的密码,如果为空,则对应用户没有口令,登录时不需要口令;*代表帐号被锁定;!表示这个密码已经过期了;
    $6$开头的,表明是用SHA-512加密;
    $1$表明是用MD5加密;
    $2$ 是用Blowfish加密;
    $5$ 是用 SHA-256加密;
  3. 上一次修改的时间(从1970年1月1日起的天数)
  4. 密码不可被变更的天数:设置了这个值,则表示从变更密码的日期算起,多少天内无法再次修改密码,如果是0的话,则没有限制
  5. 密码需要重新变更的天数:密码经常更换才能保证安全,为了提醒某些经常不更换密码的用户,可以设置一个天数,强制让用户更换密码,也就是说该用户的密码会在多少天后过期,如果为99999则没有限制
  6. 密码过期预警天数:如果在5中设置了密码需要重新变更的天数,则会在密码过期的前多少天进行提醒,提示用户其密码将在多少天后过期
  7. 密码过期的保留时间:如果在5中设置的日期过后,用户仍然没有修改密码,则该用户还可以继续使用的天数
  8. 账号失效日期,过了这个日期账号就不能用了
  9. 保留域

例:

root:$6$yKWZUSO0SwgjC.63$NbjJATXRkjSmbcudDHvrRoAqXSNwPtmhfrVpxXad4NghoSe309PCkeHVGvQ0JuEllhuyas.xUQGiH42GclSlx1:18654:0:99999:7:::

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2058751973@qq.com

×

喜欢就点赞,疼爱就打赏