1.用户相关命令 增(创建用户)
命令:useradd +用户名
# 创建一个用户会影响到4个文件:
/etc/passwd (用户信息)
/etc/shadow (用户密码)
/etc/group (用户组)
/etc/gshadow (用户组密码)
创建用户(不用命令的方式)步骤 (太过繁琐,一般用命令创建,了解即可)
1.vim /etc/group :先创建组
[root@localhost ~]# vim /etc/group
abc123:x:1010:
2.vim /etc/gshadow :更改组密码一般不设置
[root@localhost ~]# vim /etc/gshadow
abc123:!::
3.vim /etc/passwd :增加新用户
[root@localhost ~]# vim /etc/passwd
abc111:x:1020:1010::/home/abc111:/bin/bash
4.vim /etc/shadow :更改用户密码
[root@localhost ~]# vim /etc/shadow
abc111:$6$tOsCg2DJ$zoX3uE5B0YQN7yu266VsGTO4wbbfW6KMG67x5ESAqMCJayCLVhSnPmJfOfsd9
QTwRD29cGAuxbjLnK3qrfmfg.:19822:0:99999:7:::
5.mkdir /home/abc111 :创建用户的家目录
[root@localhost ~]# mkdir /home/abc111
[root@localhost ~]# cp /etc/skel/.bash* /home/abc111/ :环境变量文件
2.用命令创建:增(useradd +选项+用户)
选项 作用
-u 指定uid
-g 指定gid(必须指定一个已存在的组)
-c 指定用户的备注(注释)
-d 指定用户的家目录
-M 不创建家目录
-s 指定用户登录的shell
-G 指定附加组
-r 创建一个用户uid在200 - 999之间
3.改(修改用户信息)(usermod +选项 +用户)
用户 作用
-u 修改用户的uid
-g 修改用户的gid(必须指定一个已存在的组)
-c 修改备注信息
-d 修改用户的家目录
-m 配合-d选项,修改玩家目录后,迁移家目录
-s 修改用户登录的shell
-G 修改用户的附加组,会替换原来的附加组
-a 配合-G,修改用户的附加组,追加附加组
-L 锁定用户
-U 解锁用户
-l 修改用户名
eg:
## 修改用户的uid
[root@localhost ~]# usermod zls666 -u 1008
[root@localhost ~]# id zls666
uid=1008(zls666) gid=4010(zls666) groups=4010(zls666),0(root),1000(zls)
## 修改用户附加组
[root@localhost ~]# id zls666
uid=1008(zls666) gid=1008(tls1111111) groups=1008(tls1111111),0(root),1000(zls)
[root@localhost ~]# usermod zls666 -G wyl,tls
[root@localhost ~]# id zls666
uid=1008(zls666) gid=1008(tls1111111)
groups=1008(tls1111111),1001(wyl),1002(tls)删(删除用户)
用户扩展知识
用户创建流程
以下两个文件作为参照物
/etc/login.defs
/etc/defaults/useradd
[root@localhost ~]# id zls666
uid=1008(zls666) gid=1008(tls1111111) groups=1008(tls1111111),1001(wyl),1002(tls)
[root@localhost ~]# usermod zls666 -G root,zls -a
[root@localhost ~]# usermod zls666 -aG root,zls
[root@localhost ~]# id zls666
uid=1008(zls666) gid=1008(tls1111111)
groups=1008(tls1111111),0(root),1000(zls),1001(wyl),1002(tls) (实现了追加)
4.删(删除用户)
命令:userdel
# user delete
userdel [选项]... 用户名
## 如果直接删除,就类似于在/etc/passwd文件中把该用户的信息删除(家目录和用户所有相关文件都在)
[root@localhost ~]# userdel abd
## 递归删除用户及用户所有相关文件
[root@localhost ~]# userdel -r wyl
## 因为用户创建时没有创建家目录,所以会有提示,但是用户实际上还是被删除了
[root@localhost ~]# userdel -r zls888
userdel: zls888 home directory (/home/zls888) not found
用户的扩展知识
用户创建流程
以下两个文件作为参照物
/etc/login.defs
/etc/defaults/useradd
## 创建用户时,useradd命令需要读取的配置文件
[root@localhost ~]# grep -i '^[a-z]' /etc/login.defs [root@localhost ~]# grep -Ev '^$|^#' /etc/login.defs
## 用户存放邮件的目录
MAIL_DIR /var/spool/mail
## 用户默认密码最长使用天数
PASS_MAX_DAYS 99999
## 用户默认密码最短使用天数
PASS_MIN_DAYS 0
## 密码最小长度5位数
PASS_MIN_LEN 5
## 密码快过期后,提前7天提醒
PASS_WARN_AGE 7
## 普通用户最小UID
UID_MIN 1000
## 普通用户最大UID
UID_MAX 60000
## 系统用户最小UID
SYS_UID_MIN 201
## 系统用户最大UID
SYS_UID_MAX 999
## 组最小ID
GID_MIN 1000
## 组最大ID
GID_MAX 60000
## 系统组最小ID
SYS_GID_MIN 201
## 系统组最大ID
SYS_GID_MAX 999
## 默认情况下,创建用户会创建该用户的家目
CREATE_HOME yes
## 创建用户家目录时,权限的umask为077,也就是用户家目录的目录权限为700 UMASK ( 默 认 权限 )
077 创建目录或者文件都是从满权限0777-umask获得权限数值可以用stat查看
## 创建用户时,是否创建出用户的同名组 yes:创建 no:不创建
USERGROUPS_ENAB yes
## 用户密码的加密算法
ENCRYPT_METHOD SHA512
## 创建用户时,useradd命令需要读取的配置文件
[root@localhost ~]# cat /etc/default/useradd
## 如果/etc/login.defs 中的USERGROUPS_ENAB是yes,那就不读取改行配置
## 如果/etc/login.defs 中的USERGROUPS_ENAB是no,那就走该行配置,把创建的用户加入gid为100的组
GROUP=100
## 创建用户时,默认用户家目录放在/home下
HOME=/home
## 用户账户有没有期限 -1表示不启用
INACTIVE=-1
## 账号终止日期,不设置表示不启用
EXPIRE=
## 用户登录时的shell
SHELL=/bin/bash
## 用户家目录下的环境变量文件存放原始目录
SKEL=/etc/skel
## 创建用户是否同时创建邮箱
CREATE_MAIL_SPOOL=yes
用户的创建流程
/etc/login.defs
/etc/default/useradd
useradd zls
1)读取/etc/login.defs和/etc/default/useradd文件的有效配置
[root@localhost ~]# grep -Ev '^#|^$' /etc/login.defs
## 用户邮箱路径
MAIL_DIR /var/spool/mail
## 密码最大使用天数
PASS_MAX_DAYS 99999
## 密码最小使用天数
PASS_MIN_DAYS 0
## 密码最小长度
PASS_MIN_LEN 5
## 密码警告天数
PASS_WARN_AGE 7
## 普通用户的最小UID
UID_MIN 1000
## 普通用户的最大UID
UID_MAX 60000
## 系统用户的最小UID
SYS_UID_MIN 201
## 系统用户的最大UID
SYS_UID_MAX 999
## 普通用户组的最小GID
GID_MIN 1000
## 普通用户组的最大GID
GID_MAX 60000
## 系统用户组的最下GID
SYS_GID_MIN 201
## 系统用户组的最大GID
SYS_GID_MAX 999
## 创建用户时默认是否创建家目录
CREATE_HOME yes
## 决定用户家目录的权限
UMASK 077
## 创建用户时是否同时创建用户的同名组
USERGROUPS_ENAB yes
## 用户密码的加密算法
ENCRYPT_METHOD SHA512
[root@localhost ~]# grep -Ev '^#|^$' /etc/default/useradd
## 如果USERGROUPS_ENAB yes,该行配置不生效
## 如果USERGROUPS_ENAB no,那么改行配置生效,并创建用户时,加入该组GID为100的组
GROUP=100
## 用户家目录默认路径
HOME=/home
## 用户账户是否设置期限 -1 无期限
INACTIVE=-1
## 账号终止设置,不设置
EXPIRE=
## 创建用户时,默认登录shell
SHELL=/bin/bash
## 存放用户环境变量的目录
SKEL=/etc/skel
## 创建用户时是否创建邮箱
CREATE_MAIL_SPOOL=yes
2)创建邮箱,并修改权限
touch /var/spool/mail/zls
3)查看上一个用户的uid是多少
[root@localhost ~]# user_name=`tail -1 /etc/passwd|cut -d ':' -f 1`
[root@localhost ~]# echo $user_name
zls9090
[root@localhost ~]# id -u $user_name
4019
4)zls用户的uid为4020
5)创建同名组
[root@localhost ~]# groupadd zls
6)CREATE_HOME yes HOME=/home创建用户的家目录
mkdir /home/zls
7)修改权限
[root@localhost ~]# chmod 700 /home/zls
[root@localhost ~]# chown -R zls.zls /home/zls
8)拷贝用户家目录的环境变量
[root@localhost ~]# cp /etc/skel/.bash* /home/zls
9)修改用户相关的4个文件
/etc/group
/etc/gshadow
/etc/passwd
/etc/shadow
创建1000用户 一条命令
seq 1000 打印数字序列 (注意使用方法)
[root@localhost ~]#seq 5
1
2
3
4
5
[root@localhost ~]#seq 5 10
5
6
7
8
9
10
创建用户
useradd tyq
echo '123'|passwd --stdin tyq
seq 1000|awk '{print "useradd tyq"$1";echo '1'|passwd --stdin tyq"$1}'|bash
&&:衔接多个命令,需要判断前面的命令执行成功后,再执行后面的命令
;:衔接多个命令执行,不能做出判断
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步