1.什么是用户
是指 能够正常登录linux或windows系统。
linux系统支持同时多个用户登录。
Windows也是多用户系统,单不允许同时多用户登录。
2.为什么要创建用户
系统上的每一个进程,都需要一个特定的用户运行
通常在公司都是使用普通用户 root权限过大 容易造成故障
3.我们的用户存在哪?
linux系统将用户存在/etc/passwd
用户密码存在/etc/shadow
这两个文件非常重要 不要轻易删改
1./etc/passwd 配置文件解释如图

2./etc/shadow

4.UID 的系统约定
centOS7 之前是500以后是普通用户

5.添加用户 useradd
useradd xxx用户名
选项表
| 选项 | 作用 |
|---|---|
| -u | 指定创建用户的UID |
| -g (group) | 指定创建用户的默认组 |
| -G | 指定创建用户的附加组 id查询 ,后为附加组 |
| -c | 指定创建用户的注释信息 “ 注释信息 ” |
| -s | 指定创建用户的默认shell解释器 /bin/bash /sbin/nologin不允许登录系统 |
| -d | 指定创建用户的家目录 |
| -M | 创建用户时不创建家目录 |
| -r | 创建系统用户 默认没有家目录 |
注: 创建完用户 要grep "xxx" /etc/passwd 检查
练习:
1.创建一个用户 UID为 5001 基本组位students 附加组为 sa 注释为2020 new student 解释器为/bin/bash
[root@wangjc ~]# groupadd students
[root@wangjc ~]# groupadd sa
[root@wangjc ~]# useradd bgx -u 5001 -g students -c "2020 new student" -s /bin/bash -G sa
[root@wangjc ~]# id bgx
uid=5001(bgx) gid=1000(students) groups=1000(students),1001(sa)
2.1.-r创建一个系统用户mysql,系统用户默认就没有家目录,-s 在指定不运行登陆系统
[root@oldboy ~]# useradd mysql -r -s /sbin/nologin
[root@wangjc ~]# useradd mysql -r -s /sbin/nologin
[root@wangjc ~]# id mysql
uid=998(mysql) gid=996(mysql) groups=996(mysql)
3.-M不给用户创建家目录,并指定登陆的bash是/sbin/nologin
[root@oldboy ~]# useradd mysql2 -M -s /sbin/nologin
[root@wangjc ~]# useradd mysql2 -m -s /sbin/nologin
[root@wangjc ~]# id mysql2
uid=5002(mysql2) gid=5002(mysql2) groups=5002(mysql2)
6.修改用户属性 usermod
usermod xxx
选项 -l 修改用户名 不常用
[root@wangjc ~]# usermod mysql -u 5003 -d /home/mysql -s /bin/bash -g students -c "2020 new student"
[root@wangjc ~]# grep "mysql" /etc/passwd
mysql:x:5003:1000:2020 new student:/home/mysql:/bin/bash
mysql2:x:5002:5002::/home/mysql2:/sbin/nologin
[root@wangjc ~]# id mysql
uid=5003(mysql) gid=1000(students) groups=1000(students)
7.删除用户 userdel
选项 ==-r== 删除用户同时删除其家目录 及邮件目录
测试环境:随便删除
生产环境:尽量不要-r操作 其家目录中可能有一些比较重要的文件
[root@wangjc ~]# userdel mysql2 -r
[root@wangjc ~]# id mysql2
id: mysql2: no such user
8.查询当前登录用户 who whoami w
who
[root@wangjc ~]# who
root pts/0 2020-03-12 12:04 (10.0.0.1)
whoami
[root@wangjc ~]# whoami
root
w 查询登录系统用户的详细信息
[root@wangjc ~]# w
12:13:09 up 59 min, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 12:04 5.00s 0.02s 0.01s w
9.如何为新用户设定密码 和修改密码 passwrd
passwd xxxx用户
普通用户只允许变更自己的密码,无法修改别人的密码,并且密码长度必须8位字符
管理员用户可以修改任何用户的密码,无论密码长度
非交互式修改
echo "xxx" | passwd --stdin xxxxx用户
[root@wangjc ~]# echo "123456" | passwd --stdin mysql
Changing password for user mysql.
passwd: all authentication tokens updated successfully.
10.系统内置变量生成随机字符串
echo $RANDOM |md5sum |cut -c 1-8
[root@wangjc ~]# echo $RANDOM |md5sum
749fd1bee2cffccc5143442f9f2e827e
[root@wangjc ~]# echo $RANDOM |md5sum |cut -c 1-8
13e61e0e
11.mkpasswd生成随机字符串
默认没有
yum provides mkpasswd 查询软件包
安装软件后使用
选项表
| 选项 | 作用 |
|---|---|
| -l | 设定字符串长度 |
| -d | 设定生成几位数字 |
| -c 小写 | 设定生成几位小写字母 |
| -c大写 | 设定生成几位大写字母 |
| -s | 设定生成几位特殊符号 |
注:-l 设定位数 需等于其他参数设定的和
例:
[root@wangjc ~]# mkpasswd -l 8 -d 2 -c 3 -C 1 -s 2
hQs_49'n
[root@wangjc ~]# mkpasswd -l 8 -d 2 -c 3 -C 1 -s 2
y5}Vgy7|
PS: 推荐密码保存套件工具,支持windows、MacOS、Iphone以及浏览器插件Lastpass官方网站