- /etc/passwd 管理用户信息的系统文件
- /etc/shadow 管理用户密码信息的系统文件
- /etc/group 管理用户组信息的系统文件
1./etc/group
将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。
每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。
文件内容 | 内容解释 | 举栗 |
---|---|---|
cat /etc/group
|
组名:口令:组标识号:组内用户列表 组名:组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。 口令:(即密码段)口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。 组标识号(GID):组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。 组内用户列表:是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。 |
以root:x:0:aa为例: 用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括aa以及GID为0的其它用户。 |
2./etc/passwd
文件内容 | 内容解释 |
---|---|
cat /etc/passwd
|
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell 用户名:通常长度不超过8个字符,由大小写字母数字组成。登录名中不能有冒号(:)、点字符(.),并且不使用连字符(-)和加号(+)打头。 口令:加密的密码,一般只存放一个特殊的字符,例如“x”或者“*”。 用户标识号(UID):是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一一对应的,如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。UID的取值范围是0-65535。0是超级用户root的标识号,1-99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。 组标识号(GID):记录用户所属的用户组。它对应着/etc/group文件中的一条记录。 注释性描述(users):存放的是一段任意的注释性描述文字,用做finger命令的输出。 主目录(home_directory):用户的起始工作目录,它是用户在登录到系统之后所处的目录。 登录Shell(Shell):用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。 Shell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(BourneShell), csh(CShell), ksh(KornShell), tcsh(TENEX/TOPS-20typeCShell), bash(BourneAgainShell)等。系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。 |
3./etc/shadow
shadow内容包括用户及被加密的密码以及其它/etc/passwd 不能包括的信息,比如用户的有效期限等;这个文件只有root权限可以读取和操作,权限如下:
-r-------- 1 root root 1.5K 10月 16 09:49 /etc/shadow
文件内容 | 内容解释 |
---|---|
sudo cat /etc/shadow
|
/etc/shadow 文件的内容包括9个字段 用户名:密码:上次修改密码的时间:两次修改口令间隔最少的天数:两次修改口令间隔最多的天数:提前多少天警告用户口令将过期:在口令过期之后多少天禁用此用户:用户过期日期:保留字段 用户名:在/etc/shadow中,用户名和/etc/passwd 是相同的,这样就把passwd 和shadow中用的用户记录联系在一起;这个字段是非空的; 密码(已被加密):如果是有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的; 上次修改口令的时间:这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数),您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化; 两次修改口令间隔最少的天数:如果设置为0,则禁用此功能,也就是说用户必须经过多少天才能修改其口令;此项功能用处不是太大;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义; 两次修改口令间隔最多的天数:这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义; 提前多少天警告用户口令将过期:当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义; 在口令过期之后多少天禁用此用户:此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用; 用户过期日期:此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永久可用; 保留字段:目前为空,以备将来Linux发展之用; |