创建流程
学习完了用户的创建、修改和删除,下面了解一下用户创建的流程。
useradd创建用户时,系统会以/etc/login.defs、/etc/defaults/useradd两个配置文件作为参照物,如果在创建用户时指定了参数则会覆盖/etc/login.defs、/etc/defaults/useradd文件默认配置,如未指定则使用默认。
/etc/login.defs文件信息
[root@localhost ~]# grep -Ev "^#|^$" /etc/login.defs
MAIL_DIR /var/spool/mail #默认邮件存放地址
PASS_MAX_DAYS 99999 #密码最大使用期限
PASS_MIN_DAYS 0 #密码多少天后过期
PASS_MIN_LEN 5 #密码不小于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 #加密的算法
/etc/defaults/useradd文件信息
[root@localhost ~]# cat /etc/default/useradd
GROUP=100
HOME=/home #把用户的家目录建在/home中。
INACTIVE=-1 #是否启用账号过期停权,-1表示不启用。
EXPIRE= #账号终止日期,不设置表示不启用。
SHELL=/bin/bash #新用户默认所有的shell类型。
SKEL=/etc/skel #配置新用户家目录的默认文件存放路径。
CREATE_MAIL_SPOOL=yes #创建mail文件。
当使用useradd创建用户时,创建的用户家目录下会存在 .bash_* 环境变量相关的文件,这些环境变量文件默认从/etc/skel目录中拷贝。这个默认拷贝环境变量位置是由/etc/defaults/useradd配置文件中定义的。
如果在当前用户家目录执行了rm -rf .*,下次登录系统时出现-bash-4.1$,我们可以重新从/etc/skel来拷贝一份环境变量文件到当前目录下来解决。
-bash-4.1$ cp -a /etc/skel/.bash* ./