第七篇:别名、用户管理体系、堡垒机项目

别名

  概述

  • 别名一般用于给命令设置一个昵称(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/

 

posted @   猿小姜  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示