第七篇:别名、用户管理体系、堡垒机项目
别名
概述
- 别名一般用于给命令设置一个昵称(ll=ls -l)
- 应用场景:
- 给常用命令设置快捷方式,使用更加方便
- 给危险命令加上防护措施
创建别名⭐⭐⭐⭐⭐
案例:给rm命令设置别名,只要运行rm就提示 rm command is not found
查看系统已有的别名
- alias #查看所有的别名
- alias ll #查看ll别名对应的命令
设置别名
# 设置别名 alias 昵称='命令' alias rm=‘echo rm command is not found’
测试
[root@yuan ~]# rm -fr /root/yuan.txt rm command is not found -rf /root/yuan.txt [root@yuan ~]# ll /root/yuan.txt -rw-r--r--. 1 root root 0 9月 11 16:31 /root/yuan.txt # 发现删除文件失败 如过需要使用删除命令(临时取消别名) 1、使用命令绝对路径 /bin/rm 2、使用撬棍(反斜线) \别名 [root@yuan ~]# \rm /root/yuan.txt #此时yuan.txt文件删除
别名永久生效⭐⭐
一般命令行操作都是临时的,重启或重新登录便失效,需要修改配置文件使其永久生效
- 修改配置文件
- ~/.bashrc(当前用户生效)
- /etc/profile(全局生效)
# 修改/etc/profile 在最后一行写入配置别名的命令。 alias rm='echo rm command is not found' #让配置文件生效(source目前仅用于profile文件) source /etc/profile #检查别名 alias rm alias rm='echo rm command is not found' #未来除了rm,cp,mv命令的别名,配置到此为止。 对于rm,cp,mv命令的别名,还要额外配置下,否则不生效。 #注释掉~/.bashrc里面已经配置的别名 修改~/.bashrc 注释#alias rm='rm -i' 这一行
用户管理
用户管理概述
概述
- 各种系统中都有用户,win(administrator),Linux系统中是有各种类型的用户的
- 未来大部分操作通过使用root实现,如果进行系统管理的时候都使用root会造成管理混乱
- 未来Linux系统会有各种的用户,每个用户都有自己的用途,root最高权限用户,普通用户,虚拟用户
- Linux系统是一个多用户系统.
UID,GID⭐⭐
- Linux中的用户有一个标记(类似于身份证号),叫做UID,GID,一般情况下UID和GID要唯一
- UID user id 用户的id号,身份证号码
- GID group id 用户组的id号,户口本号码
用户分类⭐⭐⭐⭐⭐
用户分类 | uid分类(uid是众多分类方法当中的一种方法) |
root | uid是0 |
普通用户 | uid大于等于1000(C7之后)(C5、C6 大于等于500) 手动创建,无法对系统进行更改,只在当前家目录有权限 |
虚拟用户 | uid小于1000,也叫傀儡用户,用于服务、进程运行使用的用户,无法直接使用 |
用户相关文件
Linux下面每创建一个用户,一般会影响下面几个文件
用户相关文件 | 说明 |
/etc/passwd | 存放用户信息 |
/etc/shadow | 存放密码信息 |
/etc/group | 存放用户组信息 |
/etc/gshadow | 存放用户组密码信息,一般不会给用户组设置密码 |
/etc/passwd⭐⭐⭐⭐⭐
/etc/shadow
mail:*:18353:0:99999:7::: operator:*:18353:0:99999:7::: 第一列:用户名 第二列:密码 第三例及以后:密码过期时间(默认不过期)
/etc/group
root:x:0: bin:x:1: daemon:x:2: 第一列:用户组的名字(默认是和用户名一致) 第二列:密码 第三例:gid 第四列:这个组里有什么额外的用户没有(空表示没有)
用户管理指令(增删改查)⭐⭐⭐⭐⭐
作用 | 命令 |
增加 | useradd,passwd,su,chpasswd |
删除 | userdel |
修改 | usermod |
查看 | id,whoami,last,w,lastlog |
增加
-
useradd(创建用户)
useradd选项 | 说明 |
-u | 指定用户uid |
-s | 指定命令解释器,默认是/bin/bash |
-M | 不创建家目录 |
# 案例:创建用户mysql,uid=1314,命令解释器/sbin/nologin,不创建家目录 虚拟用户:命令解释器是/sbin/nologin和不创建家目录 [root@yuan ~]# useradd -u 1314 -s /sbin/nologin -M mysql [root@yuan ~]# grep 'mysql' /etc/passwd /etc/group /etc/shadow /etc/passwd:mysql:x:1314:1314::/home/mysql:/sbin/nologin /etc/group:mysql:x:1314: /etc/shadow:mysql:!!:19977:0:99999:7::: [root@yuan ~]# id mysql uid=1314(mysql) gid=1314(mysql) 组=1314(mysql)
-
passwd(修改密码)
passwd选项 | 说明 |
--stdin | 非交互式修改密码 |
# 案例:给yuan用户设置密码(交互) passwd yuan # 案例:非交互式修改密码,用于批量修改密码(只能root用) [root@yuan ~]# echo 1 |passwd --stdin yuan 更改用户 yuan 的密码 。 passwd:所有的身份验证令牌已经成功更新。
-
su(切换用户)
#su switch user 切换用户 su - yuan # 切换到yuan用户 ctrl + d # 相当于退出当前目录 温馨提示: su命令中的-式su命令的选项:-、-l、--login su - :切换用户时,更新用户的配置与环境变量
删除(userdel)
尽量避免使用,通过注释这个用户信息实现userdel | 默认不会删除家目录和相关文件(比如邮箱) |
-r | 删除用户及家目录(谨慎使用) |
# 案例:删除用户yuan [root@yuan ~]# userdel yuan [root@yuan ~]# grep 'yuan' /etc/passwd [root@yuan ~]# ll /home/ 总用量 0 drwx------. 2 1000 1000 99 9月 11 18:57 yuan #彻底删除用户包含家目录 [root@yuan ~]# useradd yuan useradd:警告:此主目录已经存在。 不从 skel 目录里向其中复制任何文件。 正在创建信箱文件: 文件已存在 [root@yuan ~]# grep 'yuan' /etc/passwd yuan:x:1000:1000::/home/yuan:/bin/bash [root@yuan ~]# userdel -r yuan [root@yuan ~]# grep 'yuan' /etc/passwd [root@yuan ~]# ll /home/ 总用量 0
修改 (usermod了解)
usermod:用于修改用户信息(useradd添加用户时添加的信息usermod都能修改),用户需要已经存在
[root@yuan ~]# useradd yuan [root@yuan ~]# grep 'yuan' /etc/passwd yuan:x:1315:1315::/home/yuan:/bin/bash [root@yuan ~]# su - yuan 上一次登录:三 9月 11 20:28:03 CST 2024pts/0 上 [yuan@yuan ~]$ 登出 [root@yuan ~]# usermod -s /sbin/nologin yuan [root@yuan ~]# grep yuan /etc/passwd yuan:x:1315:1315::/home/yuan:/sbin/nologin [root@yuan ~]# su - root 上一次登录:三 9月 11 20:33:21 CST 2024pts/0 上 This account is currently not available. # 当前用户不可用 [root@yuan ~]# usermod -s /bin/bash yuan [root@yuan ~]# grep 'yuan' /etc/passwd yuan:x:1315:1315::/home/yuan:/bin/bash
查看
id |
查询用户的uid,gid,用户组信息,检查用户是否存在 |
whoami |
查询当前用户的名字 |
w |
查看当前登录的用户的信息 |
last |
用户的登录情况 |
lastlog |
所有用户最近一次登录情况 |
-
id
# id 查看用户id信息、uid、gid、属于的用户组 判断用户是否存在 [root@yuan ~]# id yuan uid=1315(yuan) gid=1315(yuan) 组=1315(yuan) [root@yuan ~]# usermod -G root yuan # 让yuan用户属于yuan组和root组 [root@yuan ~]# id yuan uid=1315(yuan) gid=1315(yuan) 组=1315(yuan),0(root) [root@yuan ~]# usermod -G '' yuan # 将用户yuan从root组中踢出 [root@yuan ~]# id yuan uid=1315(yuan) gid=1315(yuan) 组=1315(yuan)
-
whoami
# 查询当前用户的名字 [root@yuan ~]# whoami root [root@yuan ~]# su - yuan 上一次登录:三 9月 11 20:34:38 CST 2024pts/0 上 [yuan@yuan ~]$ whoami yuan
-
w命令(查询谁登录了系统并且正在干啥,系统运行时间,负载信息)
-
last,lastlog 查看用户登录情况
-
last 显示所有用户的登录信息
-
lastlog 先所有用户最近1次的登录信息
-
用户组命令(了解)
- 创建用户组 groupadd
- 使用场景:指定用户的uid和gid使用
# 案例:创建uid,gid都为888的yuan888虚拟用户 [root@yuan ~]# useradd -u 888 -s /sbin/nologin -M yuan888 [root@yuan ~]# id yuan888 [root@yuan ~]# id yuan888 uid=888(yuan888) gid=1316(yuan888) 组=1316(yuan888) [root@yuan ~]# groupadd -g 888 yuan888 [root@yuan ~]# useradd -u 888 -g yuan888 -s /sbin/nologin -M yuan888 正在创建信箱文件: 文件已存在 [root@yuan ~]# id yuan888 uid=888(yuan666) gid=888(yuan666) 组=888(yuan666)
删除用户进程被占用问题
- 报错分析
- 当我们想删除某个用户的时候,出现 user xxx is currently used by process xxx,可能的原因是你创建用户yuan之后,使用su命令切换到yuan用户下,之后又想删除yuan用户,使用su root切换到root用户下,使用userdel yuan。出现上述情况的根本原因在于切换回root用户之后,yuan还被某个进程占用。
-
- 解决方案:ctrl+d(退出当前用户)
- 第一次使用ctrl+d退出root用户,回到yuan用户;第二次使用ctrl+d退出yuan用户,此时会返回到root用户(再按ctrl+d退出登陆连接),此时使用userdel yuan正常删除。
故障案例--命令行 -bash-4.2$
预备知识/etc/skel/目录
- /etc/skel/目录是Linux新用户家目录的一个模板
- 当我们创建用户时,系统会把/etc/skel/下面的所有内容复制到新用户家目录下面
- 其他应用:创建通知文件,告知每个新用户静止使用rm等危险命令
1)原因
命令行: -bash-4.2$ 用户家目录没有,用户家目录下面的配置文件没了 (~/.bashrc ~/.bash_profile)
2)解决
# 通过/etc/skel/.bash* 复制并解决 cp /etc/skel/.bash* ~ 重新登录即可
故障复现
# 在普通用户下操作 rm -rm ~/.bash* cp /etc/skel/.bash* ~
sudo权限管理
概述
- Linux系统开发人员要看日志,如何创建用户与授权权限
- 搭建一个日志平台
- 普通用户+尚方宝剑以root权限运行命令
- 这个时候需要使用sudo(提权),通过普通用户+sudo权限实现这个目标
- sudo概述:用于给普通用户配置命令,配置了sudo权限后普通用户可以以root权限运行该命令
sudo授权及使用
# 温馨提示:需要使用root用户进行sudo授权 # root授权配置 visudo === vi /etc/sudoers # 普通用户使用 sudo + 命令
# 案例:授予yuan用户,以root权限运行cat,head,more,less,grep权限 # root用户授权 visudo===vim /etc/sudoers [root@yuan ~]# visudo # 在100行后面写入 yuan ALL=(ALL) /bin/cat,/bin/head,/bin/tail,/bin/less,/bin/more,/bin/grep # 过滤查看配置结果 [root@yuan ~]# grep 'yuan' /etc/sudoers yuan ALL=(ALL) /bin/cat,/bin/head,/bin/tail,/bin/less,/bin/more,/bin/grep # yuan用户使用 [yuan@yuan ~]$ sudo head /var/log/secure [sudo] yuan 的密码: # 输入yuan用户密码 # 查看普通用户sudo权限 [yuan@yuan ~]$ sudo -l 用户 yuan 可以在 yuan 上运行以下命令: (ALL) /bin/cat, /bin/head, /bin/tail, /bin/less, /bin/more, /bin/grep # 案例:授予yuan用户运行所有命令(root)并且不需要输入密码 yuan ALL=(ALL) NOPASSWD:ALL # 在root用户下/etc/sudoers文件下配置 [yuan@yuan ~]$ sudo grep 'yuan' /etc/sudoers yuan ALL=(ALL) NOPASSWD:ALL # yuan ALL=(ALL) /bin/cat,/bin/head,/bin/tail,/bin/less,/bin/more,/bin/grep
堡垒机和跳板机
概述
- 跳板机,堡垒机是未来工作环境中,远程连接必备设备或服务,要求我们只能连接堡垒机或跳板机,然后通过它对服务器进行管理与控制
- 跳板机:间的的跳板工具
- 堡垒机:跳板工具+审计功能
堡垒机产品 | |
开源软件 | Jumpserver、Teleport |
物理硬盘设备 | 购买 |
云服务 | 购买 |
项目实战
项目前拍摄快照
安装teleport
# 下载软件包并上传到Linux yum install -y lrzsz rz 从windows本地上传文件 sz 下载文件到windows本地 # 检查文件大小 [root@yuan windows_upload_download]# ll -h teleport-server-linux-x64-3.6.4-b3.tar.gz -rw-r--r--. 1 root root 32M 9月 12 10:44 teleport-server-linux-x64-3.6.4-b3.tar.gz # 解压 [root@yuan windows_upload_download]# tar xf teleport-server-linux-x64-3.6.4-b3.tar.gz [root@yuan windows_upload_download]# ll 总用量 31952 drwxr-xr-x. 5 1000 1000 62 9月 13 2022 teleport-server-linux-x64-3.6.4-b3 -rw-r--r--. 1 root root 32717761 9月 12 10:44 teleport-server-linux-x64-3.6.4-b3.tar.gz # 进入目录并安装(根据官方文档提示进行) [root@yuan windows_upload_download]# cd teleport-server-linux-x64-3.6.4-b3 [root@yuan teleport-server-linux-x64-3.6.4-b3]# ./setup.sh # 检查teleport是否运行 [root@yuan ~]# /etc/init.d/teleport status teleport web server is running. teleport core server is running. # 关闭或重启服务 /etc/init.d/teleport stop #关闭服务 /etc/init.d/teleport start #开启 /etc/init.d/teleport restart #重启
关闭防火墙和Selinux
不关闭防火墙和Selinux则浏览器中打不开该堡垒机
# 关闭防火墙 systemctl stop firewalld # 用于停止firewalld服务 systemctl disable firewalld # 禁用firewalld开机自启动功能 # 检查防火墙是否关闭 systemctl status firewalld 不显示绿色(running)即可 # 关闭Selinux(工作中基本关闭) setenforce 0#临时关闭 vim /etc/selinux/config 找出中间的行SELINUX=enforcing 修改为SELINUX=disabled getenforce #结果是permissive或disabled都表示关闭。 #如果是enforcing表示开启
浏览器访问 http://10.0.0.200:7190/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现