与用户和组相关的配置文件
目录
前言
Linux用户和组相关的配置文件有:
1. /etc/passwd:用户及其属性信息(名称、UID、基本组ID等等)
注意:此配置文件并不保存密码
2. /etc/group:组及其属性信息
3. /etc/shadow:用户密码及其相关属性
4. /etc/gshadow:组密码及其相关属性(用户完成基本组切换时使用)
5. /etc/default/useradd:设置添加的用户规则文件(默认值)
6. /etc/login.defs:设置用户帐号限制
本文探讨的问题有如下几个:
1. /etc/passwd等几个配置文件各字段所表示的内容
2. /etc/default/useradd所配置的默认内容
3. /etc/login.defs所配置的默认内容
一、/etc/passwd文件结构
1.查看配置文件帮助信息
命令:man 5 passwd
2.各字段说明
/etc/passwd文件中每行信息均有7个字段组成,下面说明各字段所表示的内容
name:password:UID:GID:GECOS:directory:shell
用户名:密码:用户标识符:用户所在组标识符:用户的详细信息:主目录:默认shell
P.S. ①配置文件中存在一些系统账号:如bin, daemon, adm, nobody等
②密码字段为占位符:X
③UID
0 系统管理员
CentOS 6
1-499 系统用户
500-65535 登陆用户
CentOS
1-999 系统用户
1000-65535 登陆用户
二、/etc/group文件结构
各字段说明
goup_name:passwd:GID:user_list
组名:组密码:组标识符:用户列表
P.S. 组密码字段为占位符:X
三、/etc/shadow文件结构
1.各字段说明
用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段
2.部分字段详细说明
加密了的密码
请参考 crypt(3) 来了解关于解析此字符串的细节信息。
如果密码字段包含一些不是 crypt(3) 合法结果的字符,比如 ! 或 *,用户将无法使用 unix 密码登录(但是可以通过其它方法登录系统)。
此字段可以为空,此时认证为特定的登录名时,不要求密码。然而,一些读取/etc/shadow 文件的应用程序,在密码字段为空时,可能决定禁止任何访问。
以叹号开始的密码字段意味着密码被锁定。该行的剩余字符表示锁定之前的密码。
最后一次更改密码的日期
最近一次更改密码的时间,表示从1970年1月1日开始的天数。
0 有特殊意思,表示用户应该在下次登录系统时更改密码。
空字段表示密码年龄功能被禁用。
密码的最小年龄
最小密码年龄是指,用户一次更改密码之后,要等多长时间才再次被允许更改密码。空字段或 0 表示没有最小密码年龄。
最大密码年龄
最大密码年龄是指,这些天之后,用户必须更改密码。
这些天之后,密码仍然可用。用户将会在下次登录的时候被要求更改密码。
空字段表示没有最大密码年龄,没有密码警告时间段,没有密码禁用时间段(请看下边)。
如果最大密码年龄小于最小密码年龄,用户将会不能更改密码。
密码警告时间段
密码过期之前,提前警告用户的的天数(请参考上边的密码的最大年龄)。
空字段或者 0 表示没有密码警告期。
密码禁用期
密码过期(查看上边的密码最大年龄)后,仍然接受此密码的天数(在此期间,用户应该在下次登录时修改密码)。密码到期并且过了这个宽限期之后,使用用户的当前的密码将会不能登录。用户需要联系系统管理员。
空字段表示没有强制密码过期。
账户过期日期
账户过期的日期,表示从1970年1月1日开始的天数。
注意,账户过期不同于密码过期。账户过期时,用户将不被允许登录;密码过期时,用户将不被允许使用其密码登录。
空字段表示账户永不过期。应该避免使用 0,因为它既能理解成永不过期也能理解成在1970年1月1日过期。
四、/etc/gshadow文件结构
1.各字段说明
组名:加密了的密码:管理员:成员
2.部分字段详细说明
管理员
必须是一个逗号分隔的用户名列表。
管理员可以更改组密码和成员。
管理员也有成员一样的权限(请看下边)。
成员
必须是一个逗号分隔的用户名列表。
成员可以免密码访问组。
五、/etc/default/useradd
1.文件作用
设置添加的用户规则文件(默认值)
2.查看方式
①useradd -D
②cat /etc/default
③其他
3.每行所配置的内容
1 # useradd defaults file
2 GROUP=100 # 默认的用户组ID
3 HOME=/home #默认用户的家目录
4 INACTIVE=-1 #是否启用帐号过期停权,-1表示不启用
5 EXPIRE= #帐号终止日期,不设置表示不启用。
6 SHELL=/bin/bash #默认shell
7 SKEL=/etc/skel #用户组目录参考基准目录
8 CREATE_MAIL_SPOOL=yes #是否创建用户邮件信箱
六、/etc/login.defs
MAIL_DIR /var/spool/mail 用户默认邮箱放置目录
PASS_MAX_DAYS 99999 多久需变更密码的天数
PASS_MIN_DAYS 0 多久不可重新设置密码的天数
PASS_MIN_LEN 5 密码最短的字符长度,已被 pam 模块取代,失去效用!
PASS_WARN_AGE 7 过期前会警告的天数
UID_MIN 1000 用户最小的 UID,即小于 1000 的 UID 为系统保留
UID_MAX 60000 用户能够用的最大 UID
SYS_UID_MIN 201 保留给用户自行设置的系统帐号最小值 UID
SYS_UID_MAX 999 保留给用户自行设置的系统帐号最大值 UID
GID_MIN 1000 用户自定义用户组的最小 GID,小于 1000 为系统保留
GID_MAX 60000 用户自定义用户组的最大 GID
SYS_GID_MIN 201 保留给用户自行设置的系统帐号最小值 GID
SYS_GID_MAX 999 保留给用户自行设置的系统帐号最大值 GID
CREATE_HOME yes 是否在不加 -M 及 -m主动创建用户主目录
UMASK 077 用户主目录创建的 umask ,因此权限会是 700
USERGROUPS_ENAB 使用 userdel 删除时,是否会删除初始群组
ENCRYPT_METHOD SHA512 密码加密使用的机制
参考资料:
①《鸟哥的Linux私房菜-基础篇》
②马哥随堂笔记
③shadow(5), gshadow(5)
注:诚恳欢迎读者对本文提出批评意见,若发现存在错误,我定第一时间修改。如果读者觉得文章对您有帮助,欢迎点赞鼓励一下哟٩(๑❛ᴗ❛๑)۶。