1、影子文件/etc/shadow
- 为什么叫影子文件??? 因为shadow就是影子的意思,其次shadows文件的权限是000它的权限非常小,所以在shadow中保存的是真正加密的密码串。 在/etc/passwd里面只有密码标志x
- 复习: 早期的Linux当中是把密码直接放到这个文件当中,但是现在并没有把密码放在这里,而是放在另一个文件,而是放在影子文件/etc/shadow里面,最主要原因是
ll /etc/passwd
可查这个文件得权限是644.ll /etc/shadow
这个文件的权限是000原先是把密码放在/etc/passwd里面,但是有一个问题,他存放了用户信息,每个用户能看自己的信息,还有读的权限,都能看到内容。现在已经写到shadow文件里面了。现在/etc/passwd
放的是密码标识x。 - 打开这个shadow文件,
vim /etc/shadow
通过上图可知: 一共有9个字段,这9个字段代表的含义:
- 第1字段:用户名
- 第2字段:加密密码
加密算法升级为SHA512散列加密算法
如果加密密码是“!!”或“*”代表没有密码,不能登录
- 第3字段:密码最后一次修改日期
使用1970年1月1日作为标准时间,每过一天时间戳加1
- 第4字段:两次密码的时间间隔(和第三字段相比)
- 第5字段:密码有效期(和第三字段相比)
- 第6字段:密码修改到期前的警告天数(和第五字段相比)
- 第7字段: 密码过期后的宽限天数(和第五字段相比)
0:代表密码过期后立即失效
-1:代表密码永不失效
- 第8字段:账号失效时间
要用时间戳表示
- 第9字段:保留
2、9个字段代表的含义
每个字段的含义已经说完了,接下来开始详细介绍每个字段代表的含义和注意事项:
第1个字段:
- 第一个字段是用户名
第2个字段
- 经过加密之后的真正的加密密码。
第3字段:
- 这个数值是时间戳表示
第4字段:
- 举个栗子: 如果是0,第一次密码改完之后,不需要间隔,第二次密码就可以改。
如果是10,只能10天之后才能改密码。 - 这个字段是和第三字段相比
第5个字段
- 上图中所示的数字是99999,就是就是密码有效期是99999天,大概是273年。如果改成90,就是这个user1每90天改一次密码。现在默认这个字段的数值是90,下面举栗子的时候就用这个数值。这个数值是7,后面好举栗子。这个字段是和第三字段相比!!!
第6个字段
- 如果密码的有效期的90天,第6个字段是7,到83天的时候,你的user1每一次登录,系统都会给你一次警告信息。这个字段是和第五个字段相比
第7个字段
- 如果不写,到90天,如果还不改密码,这个用户就禁止登录,就把他封掉了。如果是5,到83天了,用户登录就会有警告,到90天了,不会禁止你,还会继续警告,到95天,还不改密码,这个用户就会被封掉了。这个是密码到期的宽限时间。
第8个字段
- 如果这块写了时间,到了这个时间账号就失效了,不管你的密码有效期是否到期。但是要用时间戳表示!!! 这时要用到时间戳公式。
第9个字段
- 是保留字段暂时没有有用
3、时间戳换算
- 把时间戳换算成日期
date -d "1970-01-01 16066 days"
- 把日期换算为时间戳
echo $(($(date --date="2014/01/06" +%s)/86400+1))