一、/etc/login.defs配置文件
/etc/login.defs 文件用于在Linux创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID和 GID 的范围,用户的过期时间,密码的最大长度等等。该文件里的配置对root用户无效。
需要注意的是,如果该文件与/etc/shadow里有相同的选项,则以/etc/shadow的设置为准。也就是说/etc/shadow的配置优先级高于/etc/login.defs
配置文件详解:
[root@whb ~]# grep -Ev '^$|^#' /etc/login.defs
MAIL_DIR /var/spool/mail #创建用户时,还在此目录下创建用户的mail文件
PASS_MAX_DAYS 99999 #用户密码最大的有效期
PASS_MIN_DAYS 0 #用户密码最小的修改时间
PASS_MIN_LEN 5 #用户密码的最小长度(默认不生效)
PASS_WARN_AGE 7 #密码到期前的警告时间
UID_MIN 1000 #普通用户最小的UID
UID_MAX 60000 #普通用户最大的UID
SYS_UID_MIN 201 #系统用户最小的UID
SYS_UID_MAX 999 #系统用户最大的UID
GID_MIN 1000 #普通组的最小GID
GID_MAX 60000 #普通组的最大GID
SYS_GID_MIN 201 #系统组的最小GID
SYS_GID_MAX 999 #系统组的最大GID
CREATE_HOME yes #新建用户时,是否创建家目录
UMASK 077 #默认创建目录的权限级别
USERGROUPS_ENAB yes #新建用户时,在未指定基本组时,是否新建一个同名的组作为其主组
ENCRYPT_METHOD SHA512 #采用SHA512算法加密
二、/etc/default/useradd配置文件
同样也是新建用户时的默认配置文件
[root@whb ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 #当login.defs中的USERGROUPS_ENAB为no时,使用此选项,新建用户的组的GID为100
HOME=/home #普通用户家目录的位置
INACTIVE=-1 #是否启用账户过期停权,-1为不启用
EXPIRE= #用户的过期时间,不设置表示未启用
SHELL=/bin/bash #新建用户默认的shell类型
SKEL=/etc/skel #用户家目录的模板
CREATE_MAIL_SPOOL=yes #创建用户时,是否创建mail文件
案例:
关闭/etc/login.defs中的USERGROUP_ENAB=no,创建用户时,默认GID为100
[root@whb ~]# grep 'USERGROUPS_ENAB' /etc/login.defs
USERGROUPS_ENAB no
[root@whb ~]# useradd user07
[root@whb ~]# id user07 #此时会发现,user07的GID为100
uid=2001(user07) gid=100(users) groups=100(users)