Linux操作系统是多用户操作系统,它允许多个用户同时登录到系统中,使用系统资源,为了使所有用户的工作都能顺利进行,保护每个用户的文件和进程,也为了系统自身的安全和稳定,必须建立起一种机制,使每个用户的权限都能得到规范。为此,首先区分不同的用户,这就产生了用户账户。

账户实际上就算一个用户在系统中的标识,系统依据账户来区分每个用户的文件、进程、任务等,给每个用户提供特定的环境,这种环境包括:用户的工作目录、Shell版本、X-Window环境的配置等,使每个用户的工作都能独立进行。

1.Linux的账户:用户账户和组账户

用户账户:普通用户账户 和  超级用户账户(管理员账户)
组账户:组是用户的集合。在CentOS中,组有两种类型:私有组和标准组

当创建一个新用户时,若没有指定他所属于的组,CentOS就建立一个和该用户同名的私有组,此私有组中只包含这个用户自己;标准组可以容纳多个用户,若使用标准组,在创建一个新用户时就应该指定他所属于的组。同一个用户可以同属于多个组。当一个用户属于多个组时,其登录后所属的组称为主组,其他的组称为附加组。

2.Linux下的账户系统文件

/etc/passwd:每行定义一个用户帐号,一行中划分为多个字段定义用户账户的属性,各字段间用:分隔;任何用户均可读
/etc/shadow:加密用户口令;只有root用户可读
/etc/group:存放组信息;任何用户均可读
/etc/gshadow:定义用户组口令、组管理员等信息,该文件只有root用户可以访问

账户管理的实质就是管理上述的4个账户系统文件

/etc/passwd:每行定义一个用户帐号,一行中划分为多个字段定义用户账户的属性,各字段间用:分隔 ;该文件中的内容示例如下:
cc:x:1000:1000:cc:/home/cc:/bin/bash
用户名:口令:用户标识号:组标识号:注释性描述:宿主目录:命令解释器
口令:此字段存放加密的口令。在此文件中的口令是x,这表示用户的口令是被/etc/shadow文件保护的,所有加密的口令以及和口令相关的设置都保存在/etc/shadow中
注释性描述:例如存放用户全名等信息
宿主目录:用户登录后所进入的目录
命令解释器:指示该用户使用的shell,默认为bash

/etc/shadow:加密用户口令;只有root用户可读;该文件中的内容示例如下:

root:$6$p272TJUi$4gsqVUd5DGEKEnsh.Ej7RWgyhjHj.hnwf/KCTnPOZPBqX8gwNvoCAkve/Dg7oYVOtbvuUghLvKydLPNS12tDJ1:17142:0:99999:7:::
用户名:口令:最后一次修改的时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

口令:用户的口令,是经过SHA512加密过的
最后一次修改时间:从1970年1月1日起,到用户最后一次更改口令的天数
最小时间间隔:从1970年1月1日起,到用户可以更改口令的天数
最大时间间隔:从1970年1月1日起,到用户必须更改口令的天数
警告时间:在用户口令过期之前多少天提醒用户更新
不活动时间:在用户口令过期之后到禁用账户的天数
失效时间:从1970年1月1日起,到禁用账户的天数
标志:保留位

/etc/group:将用户分组当作Linux中对用户进行管理及控制访问权限的一种方式。每个用户都属于某一个组;一个组可以有多个用户,一个用户也可以属于不同的组。当一个用户同时属于多个组时,在/etc/passwd 文件中记录的时用户所属的主组,也就是登录时所属的主组,而其他组称为附加组。用户要访问附加组的文件时,必须首先使用newgrp命令使自己成为所要访问组的成员。组的所有属性都存放在 /etc/group文件中。该文件示例如下:

root:x:0:
组名:组口令:GID:组成员

组口令:由于安全性原因,已不使用该字段保存口令,用"x"占位
GID:组的识别号,每个组都有自己独有的GID
组成员:多个成员之间用","分隔,在CentOS7中,如果只有一个组成员,则不显示

/etc/gshadow 定义用户组口令、组管理员等信息,该文件只有root用户可以访问;该文件示例如下:\

root:::
组名:组口令:组管理员帐号:组成员