涉及到三个文本文件:/etc/passwd /etc/shadow /etc/group
文件相关:
/etc/passwd和用户名相关
/etc/shadow和密码相关
/etc/group和用户所属的组相关
三文件详解:
/etc/passwd里有七个字段,字段间用冒号隔开,用下面的实例讲解每个字段代表的意思:
root:x:0:0:root:/root:/bin/bash
从左到右:
root:第一个字段为用户名
x:第二个字段是密码,一般都显示为x,表示是加密过的
0:第三个字段是用户id即平时所说的uid的值
0:第四个字段是组id即平时所说的gid的值
root:第五个字段没有太重要的意义,一般用于记录一些和该用户相关的信息,当然也可写别的,个人觉得可以把这个字段理解为对该行的注释
root:第六个字段是用户的家目录,现在我理解的不多,当用用户名a登录ftp时,首先进入的就是所登录机器上a用户的家目录
/bin/bash:第七个字段是开机时用户登录用到的shell
*.随着不断的学习,以后会对之前一知半解的东西有更深的了解
/etc/shadow里有9个字段,字段间也是由冒号隔开,每个字段都是和用户的密码所相关的内容,还是用实例来讲解:
root:$293875ofdshf894w59846:14454:0:99999:7:::
从左到右:
root:第一个字段为用户名
$293875ofdshf894w59846:第二个字段为用户root的明文加密后的密文
14454:第三个字段为最后一次修改密码的时间,该数字显示的是什么表示法还不清楚,以后补上
0:第四个字段为再次修改密码的最小间隔时间(单位,天),例:现在的密码是123,我修改成456,系统会记录下修改成456时的时间存下来,当我们再次修改密码时系统会用此时的时间和上次456保存的时间做差,用差值和该字段的值对比,如果差值大于该字段值,此次密码就可以修改成功,反之
99999:第五个字段和上个字段正好相反,该数值的意思是“什么时候你必须修改密码”,也可理解为"你现在的密码最长可使用多久",从该句话就可以知道,肯定有个对比值,我们就拿上个字段的456来说吧,比如说我刚刚把密码由123改成456了,系统记录下修改成456时的时间比如是2016.1.1,则456这个密码最长使用到"2016.1.1号+99999天"这天(此例中,不知道包不包含第99999天,没试验过,暂时按自己的理解写,以后试验后确定包不包含数值当天)
7:第六个字段和上个字段是悉悉相关的,它的作用是在密码失效前的第几天(按上个字段来理解失效就是不得不改密码了)开始提醒用户密码快到期了,该改密码了
空1:第七个字段为密码过期多久后该用户被禁用(现在有点不大理解,上面不是有了在多少天后必须修改密码嘛,还要这个啥用)
空2:第八个字段为指定密码失效的绝对天数(和上一条一样,也是不大理解)
空3:第九个字段为保留字段,暂时未使用
/etc/group里有4个字段,和头两个文件一样,同样是用冒号分隔,以实例来讲解:
root:x:0:root
从左到右:
root:第一个字段为组名
x:第二个字段为组密码,一般不使用组密码,默认情况下为x
0:第三个字段为组id,即gid
root:第四个字段为第一个字段表示的组中所包含的用户,对于此例来说即root组(对应第一个字段)包含用户root(对应第四个字段),如果有多个用户,用名名之间用逗号隔开