用户密码文件
/etc/shadow:用户密码文件,此文件对应/etc/passwd中第二列的x密码占位符。很多程序的运行都和权限与UID/GID有关。因此各程序要读取/etc/passwd来了解不同账号的权限。因此/etc/passwd权限需要设置为- rw- r- - r - -(644)虽然最早的密码位(/etc/passwd 第二列)也加密过,但加密过的密码也能通过暴力破解的方法进行破解,所以后来将密码移 动到/etc/shadow文件中。而且还加入密码限制参数,本文件权限为000
第一列:用户名。
第二列:经过加密编码的密码,$6$开头的表明是使用SHA-512加密。 因为文件的权限是- - - - - - - - - -(000)。
如果密码位是“!!”或“ * ”代表没有密码,不能登录【图形界面用户登录界面上用户消失】(在第二列用户密码前面加一个“!”或“ * ”,加入后都不能登录),(新建用户时,如果不设置密码,那 么第二列为“!!”)
第三列:密码最近更改时间
此段记录了改动密码的日期,日期是由1970年1月1日作为标准时间来计算的。
1970.1.1:Unix系统认为1970年1月1日0点是时间纪元,所以我们常说的Unix时间戳是以1970年1月1日0点为计时起点的。
时间戳转日期:
日期转时间戳:(86400为每一天的秒数)
第四列:密码不可被更改的天数(与第三列相比)
第四列记录了这个账号的密码在最近一次修改过之后需要经过几天才可以再次修改。如 果是0的话,表示密码随时可以被修改。如果设置为5的话,那么当你设置过密码后,需要等5天之后才能更改密码。
第五列:密码最长有效期(与第三列相比)
经常更改密码是符合密码三原则(时效、易记忆、复杂)的一种好习惯。为了强制用户更改密码,这个字段可指定密码的最长有效期。用户必须在有效期内重设密码,否则这个账号的密码会变为过期特性。而默认的99999(273年)表示为近似永久。
第六列:密码到期前的警告天数(与第五字段相比)
当账号的密码有效期快到的时候,系统会依据这个字段的设置发出“警告”给这个账 号,提醒他过N天后你的密码即将过期。比如截图上的期限,就是密码到期前7天系统会警告用户。
第七列:密码过期后的宽限天数(密码失效日,与第五字段相比)
密码过期后预留几天给账户修改密码,期限过后无法使用旧密码登陆系统。
如果写入0,那么代表密码过去就马上失效;如果写入5,那么代表密码会在5天后失效;如果写入-1,那么代表密码永远不会失效。
第八列:账号失效日期
这里同样要写时间戳,用1970年1月1日进行时间换算,如果超过了失效时间,用户就无法使用了。通常会被使用在“收费服务”的系统中。
第九列:保留。
保留,以后新功能入或许能够用到。