linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释
一、/etc/passwd
该目录存储的是操作系统用户信息,该文件为所有用户可见。
可以看出/etc/passwd文件存放的是用户的信息,由6个分号组成的7个信息,解释如下
(1):用户名。
(2):密码(已经加密)
(3):UID(用户标识),操作系统自己用的
(4):GID(组标识)。(主组,即添加用户时的默认组或者-g指定的组)
(5):用户全名或本地帐号
(6):开始目录(用户目录)
(7):登录使用的Shell,就是对登录命令进行解析的工具
在linux中,口令文件在/etc/passwd中,早期的这个文件直接存放加密后的密码,前两位是"盐"值,是一个随机数,后面跟的是加密的密码。
为了安全,现在的linux都提供了 /etc/shadow这个影子文件,密码放在这个文件里面,并且是只有root可读的。
在利用了shadow文件的情况下,/etc/passwd文件中的密码全部变成x,普通用户看不到任何密码信息。影子口令文件(shadow文件)保存加密的口令;
shadow文件只能是root可读,从而保证了安全。
将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不 同的组。
当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。
二、/etc/shadow是在安装了影子(shadow)口令软件的系统上的影子口令文件
/etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的文 件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开。这些字段是:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号
2)“口令”字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登
录时不需要口令;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。
3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同
的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
4)“最小时间间隔”指的是两次修改口令之间所需的最小天数。
5)“最大时间间隔”指的是口令保持有效的最大天数。
6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
7)“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。
8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。
期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
三、/etc/group 存储有关本地用户组的信息
组名:口令:组标识号:组内用户列表
1)组名: 组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复
2)口令:口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。
3)组标识号:组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。别称GID.
4)组内用户列表:是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
/etc/group文件中,如果用户组是某个用户的主组时,该组的组内用户列表中往往不显示该用户,
如果用户的GID=用户组的GID,组内用户列表中不显示该用户
也就是说组内用户列表中只显示以该组为附属组的用户(待确认)