用户管理
# 用户基本概述
# 什么是用户
用户在这里指的是能够正常登录Linux
或windows
系统的账号
# 为什么需要用户
- 系统上的每一个进程(运行的程序),都需要一个特定的用户运行;
- 通常在公司是使用普通用户管理服务器,因为root权限过大,容易造成故障;
# 用户有哪些分类
系统对用户有一个约定?(约定娶你,就真的会娶嘛?)
用户UID 系统中约定的含义 0 超级管理员,最高权限,有着极强的破坏能力 1~200 系统用户,用来运行系统自带的进程,默认已创建 201~999 系统用户,用来运行用户安装的程序,所以此类用户无需登录系统 1000+ 普通用户,正常可以登陆系统的用户,权限比较小,能执行的任务有限
# 查询用户ID信息
使用
id
命令查询当前登录用户的信息[root@web ~]# id #查看当前所登陆的用户信息 uid=0(root) gid=0(root) groups=0(root) [root@web ~]# id bi #查看其它用户的信息 uid=1000(bi) gid=1000(bi) groups=1000(bi)
1
2
3
4
# 用户相关配置文件
当我们创建一个新的用户,系统会将用户的信息存放在/etc/passwd
中,而密码单独存储在/etc/shadow
中也就是说这两个文件非常的重要,不要轻易删除与修改。
# passwd文件
/etc/passwd
配置文件解释如下图,或者使用命令man 5 passwd
获取帮助
# shadow文件
/etc/shadow
配置文件解释如下图,或者使用命令man 5 shadow
获取帮助
# 用户相关命令
# 添加用户useradd
若想要添加Linux系统普通用户,可以使用useradd
命令,使用root
账号登录Linux
系统之后就可以添加系统普通用户了。
选项 | 功能描述 |
---|---|
-u | 指定要创建用户的UID,不允许冲突 |
-g | 指定要创建用户基本组 |
-G | 指定要创建用户附加组,逗号隔开可添加多个附加组 |
-d | 指定要创建用户家目录 |
-s | 指定要创建用户的bash shell |
-c | 指定要创建用户注释信息 |
-M | 给创建的用户不创建家目录 |
-r | 创建系统账户,默认无家目录 |
# 添加用户示例1
创建
birenchong
用户- 用户ID为
5001
- 基本组为
ops
,附加组dev
- 注释信息
2000 new student
,登陆shell:/bin/bash
[root@web ~]# groupadd ops [root@web ~]# groupadd dev [root@web ~]# useradd -u 5001 -g ops -G dev -c "2000 student" -s /bin/bash birenchong
1
2
3- 用户ID为
# 添加用户示例2
创建一个
mysql
的系统用户- 该用户不需要家目录。该用户不需要登陆系统
[root@web ~]# useradd -r dba -M -s /sbin/nologin
1
# 修改用户usermod
若想要修改Linux
系统普通用户,可以使用usermod
命令,使用roo
t账号登录Linux
系统之后就可以修改系统普通用户了。
选项 | 功能描述 |
---|---|
-u | 指定修改用户的UID |
-g | 指定要修改用户基本组 |
-G | 指定要修改用户附加组,使用逗号隔开多个附加组,覆盖原有的附加组 |
-d | 指定要修改用户家目录 |
-s | 指定要修改用户的bash shell |
-c | 指定要修改用户注释信息 |
-l | 指定要修改用户的登陆名 |
-L | 指定要锁定的用户 |
-U | 指定要解锁的用户 |
# 修改用户示例1
修改
birenchong
用户uid
为5008
- 基本组为
network
,附加组为ops,dev,sa
- 注释信息为
student
,登陆名称为new_birenchong
[root@web ~]# groupadd network [root@web ~]# usermod birenchong -u 5008 -c "student" -g network -aG sa -l new_birenchong
1
2
# 修改用户示例2
修改
new_birenchong
用户- 为
new_birenchong
配置密码 - 锁定该用户,然后测试远程连接登陆
- 解锁该用户然后再次测试远程连接登陆
#配置密码 [root@web ~]# echo "123" | passwd --stdin new_birenchong #锁定用户 [root@web ~]# usermod -L new_birenchong #解锁用户 [root@web ~]# usermod -U new_birenchong
1
2
3
4
5
6
7
8- 为
# 删除用户userdel
若想要删除Linux
系统普通用户,可以使用userdel
命令,使用root
账号登录Linux
系统之后就可以删除系统普通用户了
# 删除用户示例1
删除
new_birenchong
用户- 连同家目录一起删除
[root@web ~]# userdel -r new_birenchong
1
# 删除用户示例2
批量系统中此前创建过的所有无用的用户
- 使用
awk
提取无用的用户名称 - 使用
sed
拼接删除用户的命令 - 调用
userdel
命令,连同家目录一起全部删除
[root@web ~]# awk -F ':' '$3>1000{print $1}' /etc/passwd | sed -r 's#(.*)#userdel -r \1#g' | bash
1- 使用
# 设定密码passwd
- 创建用户后,如需要使用该用户进行远程登陆系统则需要为用户设定密码,设定密码使用
passwd
- 1.普通用户只允许变更自己的密码,无法修改其他人密码,并且密码长度必须8位字符
- 2.管理员用户允许修改任何人的密码,无论密码长度多长或多短。
# 交互设定密码
通过交互方式为用户设定密码
[root@web ~]# passwd #给当前用户修改密码 [root@web ~]# passwd root #给root用户修改密码 [root@web ~]# passwd birenchong #给birenchong用户修改密码,普通用户只能自己修改自己
1
2
3
# 非交互设定密码
非交互式设定简单密码
[root@web ~]# echo "123" | passwd --stdin birenchong
1非交互式设定随机密码
# mkpasswd是随机生成密码的一个工具,如果没有这个命令,请先安装 [root@web ~]# yum install -y expect # -l:指定密码长度(默认是7位数) -d:指定数字个数 -c:指定小写字母个数 -C:指定大写字母个数 -s:指定特殊字符个数 [root@web ~]# echo $(mkpasswd -l 10 -d 2 -c 2 -C 2 -s 4) | tee pass.txt | passwd --stdin birenchong
1
2
3
4
5
Last Updated: 2021/11/05, 14:31:43