groupadd redis -g 1000
useradd redis -u 1000 -g 1000 -M -s /sbin/nologin
userdel -r redis
第1章 Linux用户介绍
1.多用户与多任务
可以同时存在多个用户
可以同时存在多个用户并且同时登陆系统
2.Linux用户类型划分
超级管理员 root 可以登录
普通用户 权限有限 可以登录
虚拟用户 仅用来启动服务 不可以登录
3.Linux用户UID说明
UID = linux用户的身份证号,每个用户的uid都不一样
查看当前使用什么用户登录的
[root@centos7-100 ~]# whoami
root
查看指定用户的id信息
[root@centos7-100 ~]# id root
uid=0(root) gid=0(root) 组=0(root)
uid的序号分类:
用户UID | 角色定义 |
---|---|
0 | 超级管理员 最高权限 拥有核爆的能力 |
1~200 | 系统用户 用来运行系统自带的进程 安装完系统就默认创建的 |
201~999 | 系统用户 用来运行用户安装的程序 这些用户无需登录系统 |
1000+ | 普通用户 可以正常登陆系统的用户 权限比较小 能执行的任务有限 |
4.Linux用户相关配置
4.1 与用户相关的配置文件
/etc/passwd #存放用户信息的,但是不包含密码
/etc/shadow #存放加密后的用户密码信息
4.2 /etc/passwd配置文件讲解
root:x:0:0:root:/root:/bin/bash
用户名:密码:UID:GID:描述信息:用户家目录:登录的解释器
4.3 /etc/shadow配置文件讲解
- 用来存放加密后的密码
- 如果用户没设置密码,则密码列为空
第2章 Linux用户组介绍
1.什么是Linux用户组
简单来说,Linux系统中的用户组(group)就是具有相同特征的用户(user)集合;
2.用户与用户组的关系
简单来说,Linux系统中的用户组(group)就是具有相同特征的用户(user)集合;
比如我们需要让多个用户具有相同的权限,
那么我们只需要将多个用户添加到一个组里,
然后对这个组进行权限操作就相当于对这个组里所有的用户进行相同的权限操作了。
3.Linux用户组相关配置文件
/etc/group
/etc/gshadow
4./etc/group字段解释
root:x:0:
组名:组密码:组ID:组成员
提问:
创建一个用户 会涉及到几个文件和目录的改动
/etc/passwd 创建用户信息
/etc/shadow 保存用户密码
/etc/group 创建用户组信息
/etc/gshadow 保存用户组密码
/home/用户名 默认创建普通用户家目录
第3章 Linux用户及用户组管理命令
1.添加用户命令 useradd
重要选项:
-u 指定uid
-g 指定gid
-c 添加用户说明
-M 不创建家目录
-s 设置修改登录shell(设置/bin/nologin)
修改uid和gid:
chown -R [uid] [gid] 路径 #加 -R 为递归修改
案例1:不接任何参数创建一个普通用户
命令:
useradd zhangya
解释:
默认不加任何参数使用useradd命令会创建如下的用户
zhangya:x:1001:1001::/home/zhangya:/bin/bash
默认创建用户的同时会自动创建同名并且ID也相同的组
默认会创建家目录/home/zhangya
默认的登录shell是/bin/bash
默认创建用户是没有密码的,SSH默认拒绝空密码的用户登录,所以即使允许登录,也登陆不了
root用户切换到普通用户不需要知道密码
root修改其他用户的密码也不需要知道原来密码是啥
案例2:创建一个普通用户并指定他的uid
命令:
useradd test2000 -u 2000
效果:
[root@centos7-100 ~]# id test2000
uid=2000(test2000) gid=2000(test2000) 组=2000(test2000)
解释:
创建普通用户的同时指定uid
但是注意,uid不能重复
案例3:创建一个普通用户并指定他的uid和gid
案例4:创建一个普通用户添加说明
命令:
useradd test3000 -u 3000 -c test3000
效果:
[root@centos7-100 ~]# tail -1 /etc/passwd
test3000:x:3000:3000:test3000:/home/test3000:/bin/bash
解释:
-c 是添加这个用户的说明,仅仅是给人看的,没有特殊含义
案例5:创建一个普通用户不创建家目录
命令:
useradd user4000 -M
效果:
[root@centos7-100 ~]# ll /home/user4000
ls: 无法访问/home/user4000: 没有那个文件或目录
[root@centos7-100 ~]# tail -1 /etc/passwd
user4000:x:4000:4000::/home/user4000:/bin/bash
解释:
-M不会去创建用户的家目录
但是/etc/passwd文件里还会有记录
案例6:创建一个用户banzhang,uid为6666,不创建家目录,不允许登录/sbin/nologin
命令:
useradd banzhang -u 6666 -M -s /sbin/nologin
效果:
[root@centos7-100 ~]# tail -1 /etc/passwd
bangzhang:x:6666:6666::/home/bangzhang:/sbin/nologin
解释:
-s /sbin/nologin 不允许用户登录
-M 既然用户已经不允许登录了,那么家目录也没有必要创建了
2.修改用户命令 usermod
作用:
修改已经创建好的用户的信息uid/gid/shell
关键选项:
-s #修改登录shell
-u #修改uid
-g #修改gid
使用:
usermod -s /sbin/nologin yaya
usermod -u 3333 yaya
3.删除用户命令 userdel
重要选项:
-r 删除用户的同时连同家目录一起删除
案例1: 删除用户同时删除家目录
userdel -r test2000
4.添加用户组 groupadd
重要选项:
-g 指定gid
命令使用:
groupadd -g 1000 组名
useradd -u 1000 -g 1000 用户名
5.修改用户组 groupmod
groupmod -g 3333 yaya
7.修改用户密码 passwd
使用方法:
passwd #修改当前登录的用户的密码
passwd 用户名 #修改指定用户的密码,只能root用
分情况使用:
如果是root用户,可以修改任意用户的命令并且不需要知道原来的密码
如果你是普通用户,只能修改自己的密码,并且还得知道当前的密码是啥,并且还得满足密码复杂度
ssh指定连接用户:
ssh 用户名@IP地址
ctrl + d
拓展:如何免交互修改密码
echo 密码|passwd --stdin 用户名
echo 123456|passwd --stdin zhangya
8.用户查询相关命令
w
id
whoami
9.拓展-切换用户后显示不正常
-bash-4.2# cp /etc/skel/.bash* 用户的家目录下
总结:
useradd 99%
usermod
userdel
groupadd
groupmod
passwd
su - 用户名
ssh 用户名@ip
whoami
w
id
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律