/etc/passwd、/etc/group、/etc/shadow和/etc/gshadow介绍:

    1、/etc/passwd:该文件主要是存放用户信息,一行记录一个用户。

[root@ST_server ~]# tail -2 /etc/passwd
named:x:25:25:Named:/var/named:/sbin/nologin
huangyisan:x:502:502::/home/huangyisan:/bin/bash

    观察每一行,通过":"隔开,分成了七个部分,分别代表的意思是:

     第一部分:表示用户名,比如huangyisan 。

     第二部分:表示密码,这里的x表示占位符。

     第三部分:userID,是一个唯一标识。

     第四部分:groupID,是一个唯一标识。

     第五部分:别名,比如named用户的别名就是Named

     第六部分:用户家目录,比如huangyisan的家目录在/home/huangyisan下面

     第七部分:用户的shell模式,比如huangyisan的shell模式是/bin/bash

    

    详细说明每一部分:

     第一部分:也就是登陆时候遇到的用户名

     第二部分:密码是加密之后记录在/etc/shadow里面,具体的见下面的/etc/shadow介绍

     第三部分:管理员ID为0,普通用户范围是1-60000。在centos5和6中,系统用户范围是1-499,登陆用户范围是500+;centos7中,系统用户范围是1-999,登陆用户范围是1000+。这些配置可以在/etc/login.defs中进行修改。

     第四部分:管理员组ID为0,在centos5和6中,系统用户组范围是1-499;普通用户组是500+,在centos7中,系统用户范围是1-999,普通用户组是1000+

     第五部分:别名

     第六部分:一般默认创建了用户会在/home/USERNAME下面生成该用户对应的家目录

     第七部分:存在有多种shell模式。默认是/bin/bash,更多shell可以查看/etc/shells文件,如果一个用户的shell被指定为/sbin/nologin的话,那么这个用户是没法登陆linux的,即便是root,也不能su到用户下面,这样的用户称之为“匿名用户”,一般这样的用户可以用于FTP,能进行FTPdown数据,但是不允许登陆这台FTP服务器。


   2、/etc/group:该文件主要存放用户组的信息,一行记录一个用户组。

[root@ST_server ~]# tail -4 /etc/group
named:x:25:
huangyisan:x:502:huangyisan1,huangyisan3

    观察每一行,通过":"隔开,分成了四个部分,分别代表的意思是

     第一部分:组名,比如huangyisan这个组

     第二部分:用户组密码,x表示占位符,密码是加密之后存放在/etc/gshadow内

     第三部分:用户组ID,上面有介绍,唯一标识

     第四部分:组内用户,表示加入该组的用户,不同用户用","隔开,只有附加组都会在这里面。(已经测试)


   3、/etc/shadow:该文件主要是用户记录用户密码信息。

[root@ST_server ~]# tail -4 /etc/shadow
huangyisan:$6$5FvHR7Cn$LCDiv1W5ScbSjFkErA4HtFlQm.Kd7ND3TXKdWmQBr7xuiM3K5HtsIQwtH9KOa4MfdNVaUmG1kPCzbXqdT2o2i0:16658:0:99999:7:::
huangyisan1:!!:16658:0:99999:7:::
huangyisan2:!!:16658:0:99999:7:::
huangyisan3:!!:16658:0:99999:7:::

   观察每一行,通过":"隔开,总共为九部分,分别代表的意思是

     第一部分:用户名,比如huangyisan

     第二部分:加密后的密码;如果没密码,则用两个"!"来表示。这个密码被分为三部分,通过"$"隔开,第一部分以数字的形式来表示算法,总共是四种方式(有疑问),通过man 3 crypt可以看到四种:

ID  | Method
              ---------------------------------------------------------
              1   | MD5
              2a  | Blowfish (not in mainline glibc; added in some
                  | Linux distributions)
              5   | SHA-256 (since glibc 2.7)
              6   | SHA-512 (since glibc 2.7)

那huangyisan的就是属于方式6的加密,也就是SHA-512。第二部分是salt,系统默认加入的“杂质”,八位构成,主要是为了防止相同密码得到相同的第三部分加密后的信息。第三部分是用户提供的密码和salt一起计算得到的密码加密信息。

     第三部分:表示从1970-01-01(unix元年)开始到上一次更变密码总共经过了多少时间。

     第四部分:密码最大不可被变动时间,如果是0,则表示可以即刻进行对密码进行变动。

     第五部分:密码有效时间,超过这个时间,则密码失效,账户也暂时失效,如果99999,则永不失效。

     第六部分:密码失效之前提醒时间,比如7的话,那么到了密码失效的前七天,系统就会通知用户更变密码。

     第七部分:密码失效可登陆时间,当密码失效以后,可以宽限用户多少天内进行登陆,超过这个时间未修改密码,则账户失效。

     第八部分:账号失效时间,也是通过1970-01-01来计算的,到了这个点,账号则自动失效了。

     第九部分:保留部分。


    4、/etc/gshadow:该文件主要用于存放用户组加密等信息,一行记录一个用户组。

[root@ST_server ~]# tail -3 /etc/gshadow
huangyisan:$6$pHAKV/pR$Kaf1NYwqnL/SBGPqeiY/M9SvP5oe2xfqkUEgJyj2Vo9C0j3U.4b41lqnDSZNIz1wwf9ZSHPwL7MyC3o6o4yzF/::huangyisan1,huangyisan3
huangyisan1:!::
huangyisan3:!::

    观察每一行,通过":"隔开,总共为四部分,分别代表的意思是

     第一部分:用户组名称,比如huangyisan这个组

     第二部分:用户组密码,唯有给用户组设定了密码才会有,否则以"!"表示空。这个密码也是分为三段,和上面说的一样加密规则。

     第三部分:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用","号分割(不明白什么意思)

     第四部分:该用户组的成员,只包含附属组,多个用户之间用","隔开。