文章来源 http://blog.163.com/malloc_wet/blog/static/1104560862012113112153257/
Linux操作系统下有一个文件负责所有用户的密码。那就是shadow。该文件的权限必须设置为:
-r- --- --- (400)或者 -rw --- ---(600)
当我们执行sudo vim /etc/shadow之后可以看到这样一幅画面:
(图已不见,自行脑补)
这里我详细的描述一下这个密码存储的结构。
账户名:这个不用做过多解释,账户名与/etc/passwd里面的账户名是一一对应的关系。
密码:这里可以看到3类,分别是奇奇怪怪的字符串、*和!!其中,奇奇怪怪的字符串就是加密过的密码文件。星号代表帐号被锁定,双叹号表示这个密码已经过期了。奇奇怪怪的字符串是以$6$开头的,表明是用SHA-512加密的,$1$ 表明是用MD5加密的、$2$ 是用Blowfish加密的、$5$“是用 SHA-256加密的。
修改日期:这个是表明上一次修改密码的日期与1970-1-1相距的天数(很蛋疼吧,为什么是相距天数而不是修改日期呢?)
密码不可改的天数:假如这个数字是8,则8天内不可改密码,如果是0,则随时可以改。
密码需要修改的期限:如果是99999则永远不用改。如果是其其他数字比如12345,那么必须在距离1970-1-1的12345天内修改密码,否则密码失效。
修改期限前N天发出警告:比如你在第五条规定今年6月20号规定密码必须被修改,系统会从距离6-20号的N天前向对应的用户发出警告。
密码过期的宽限:假设这个数字被设定为M,那么帐号过期的M天内修改密码是可以修改的,改了之后账户可以继续使用。
帐号失效日期:假设这个日期为X,与第三条一样,X表示的日期依然是1970-1-1相距的天数,过了X之后,帐号失效。
保留:被保留项,暂时还没有被用上。
好了,这个很详细了。。。。
后面几点不常用,前面3点是很常用的,也是大家疑问最多的。