Linux中/etc下面passwd和shadow文件介绍
1、用户及passwd文件
1)掌握/etc/passwd文件的功能:存储所有用户的相关信息,每一个用户占用一行记录,该文件也被称为用户信息数据库(Database)
2)/etc/passwd文件中每个字段的具体含义:
a)第1个字段(列):记录的是这个用户的名字(在创建用户时root用户起的)
b)第2个字段(列):如果是x,表示该用户登录Linux系统时必须使用密码;如果为空,表示该用户在登录时无须提供密码
c)第3个字段(列):记录的是这个用户的uid
d)第4个字段(列):记录的是这个用户所属群组的gid
e)第5个字段(列):记录的是有关这个用户的备注信息
f)第6个字段(列):记录的是这个用户的家目录的路径
g)第7个字段(列):记录的是这个用户登录后,第一个要执行的进程
2、shadow文件
1)掌握/etc/shadow文件的功能:存储所有用户的密码,每一个用户占用一行记录,该文件实际上就是存放用户密码的数据库(Database)
2)掌握/etc/shadow文件中每个字段的具体含义:
a)第1个字段(列):记录的是用户名
b)第2个字段(列):记录的是密码,这个密码是经过md5加密算法加密过的密码
3、群组及group文件
1)掌握/etc/group文件的功能:存放了Linux系统中所有群组的信息,它实际上就是一个存放群组信息的数据库(Database)
2)掌握/etc/group文件每个字段的具体含义:
a)第1个字段(列):记录的是这个群组的名字
b)第2个字段(列):如果为x,表示该用户登录Linux系统时必须使用密码;如果为空,表示该用户在登录时无须提供密码
c)第3个字段(列):记录的是这个群组的gid
d)第4个字段(列)记录的是这个群组里还有哪些群组成员
(4).配置文件
在/etc/login.defs中有如下配置变量,可以用来更改此工具的行为:
CREATE_HOME(boolean) 指示是否应该为新用户默认创建主目录。此设置并不应用到系统用户,并且可以使用命令行覆盖。
GID_MAX(number),GID_MIN(number) useradd,groupadd或newusers创建的常规组的组ID范围。GID_MIN默认值1000(CentOS6为500),GID_MAX默认值60000。
MAIL_DIR(string)邮箱目录。修改或删除用户账户时需要处理邮箱,如果没有指定,将使用编译时指定的默认值。
MAIL_FILE(string) 定义用户邮箱文件的位置(相对于主目录)。
注意:MAIL_DIR和MAIL_FILE变量由useradd,usermod和userdel用于创建、移动或删除用户邮箱。如果MAIL_CHECK_ENAB设置为yes,它们也被用于定义MAIL环境变量。
MAX_MEMBERS_PER_GROUP(number) 每个组条目的最大成员数。达到最大值时,在/etc/group开始一个新条目(行)(使用同样的名称,同样的密码,同样的GID)。默认值是0,意味着组中的成员数没有限制。此功能(分割组)允许限制组文件中的行长度。这对于确保NIS组的行比长于1024字符。如果要强制这个限制,可以使用25。
注意:分割组可能不受所有工具的支持(甚至在Shadow工具集中)。如果没有必要你不应该使用这个变量。
PASS_MAX_DAYS(number) 一个密码可以使用的最大天数。如果密码比这个旧,将会强迫更改密码。如果不指定,就假定为-1,这会禁用此限制。
PASS_MIN_DAYS(number) 两次更改密码时间最小间隔。将会拒绝任何早于此的更改密码的尝试。如果不指定就假定为-1,将会禁用此限制。
PASS_WARN_AGE(number) 密码过期之前鬼畜警告的天数。0表示在过期当天警告,负值表示不警告。如果没有指定,不会给出警告。
SYS_GID_MAX(number),SYS_GID_MIN(number) useradd、groupadd或newusers创建的系统组的组ID范围。SYS_GID_MIN默认101(CentOS6为201),SYS_UID_MAX默认UID_MIN-1。
UID_MAX(number),UID_MIN(number) useradd或newusers创建的普通用户的用户ID的范围。UID_MIN默认1000(CentOS6为500),UID_MAX默认60000。
UMASK(number) 文件模式创建掩码初始化为此值。如果没有指定,掩码初始化为022。Useradd和newusers使用此掩码设置它们创建的用户主目录的模式。也被login用于指定用户的初始umask。注意,此掩码可以被用户的GECOS行覆盖(当设置了QUOTAS_ENAB时),也可以被带K指示符的limits(5)定义的限制值覆盖。
USERGROUPS_ENAB(boolean) 如果uid和gid相同,用户名和主用户名也相同,使非root组的组掩码位和属主位相同(如:022->002,077->007)。如果设置为yes,组中也没有成员了,userdel将移除此用户组,useradd创建用户时,也会创建一个同名的默认组。
1./etc/passwd
字段与字段之间以:隔开,每个字段代表的意思如下:
1.用户名。
2.用户的密码占位符。(之前用户的密码原本存储在该字段,处于安全考虑,最后专门有了/etc/shadow文件,现在默认均由x替代)
3.用户UID值,一般情况下,root的UID为0,1-499默认为系统账号,有的更大些到1000,500-65535为用户的可登录账号,有的系统从1000开始。
4.用户的gid,linux的用户都会有两个ID,一个是用户uid,一个是用户组id。(在我们登录的时候,输入用户名和密码,首先到/etc/passwd查看是否有你输入的账号或者用户名,有的话将该账号与对应的UID和GID(在/etc/group中)读出来。然后读出主文件夹与shell的设置,然后再去检验密码是否正确,正确的话正常登录)
5.用户的账号说明解释。
6.用户的家目录文件夹。
7.用户使用的shell,如果换成/sbin/nologin时默认是没有登录环境的。
2./etc/shadow
字段与字段之间以:隔开,每个字段代表的意思如下:
1.用户名,与/etc/passwd中的第一个字段一致。
2.用户的密码加密字段(“该字段存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令; 星号代表帐号被锁定; 双叹号表示这个密码已经过期了。 $6$开头的,表明是用SHA-512加密的, $1$ 表明是用MD5加密的 $2$ 是用Blowfish加密的 $5$ 是用 SHA-256加密的。)
3.“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。(一般这个时间起点是1970年1月1日)
4.“最小时间间隔”指的是两次修改口令之间所需的最小天数。
5.“最大时间间隔”指的是口令保持有效的最大天数。
6.“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
7.“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。
8.“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
9.最后一个字段,为保留字段,暂时没有任何含义。