Linux|终端管理|如何踢掉操作系统内的用户

news2025/1/21 0:59:24

一,

关于终端的一些基本概念

tty、pty 和 pts 是在类 Unix 系统(包括 Linux)中与终端交互相关的概念。它们各自代表不同的方面,并且有着密切的关联。

  1. tty (Teletype)

    • tty 原指老式的电传打字机,后来泛指任何类型的终端设备。
    • 在现代Linux系统中 /dev/tty* 表示实际或虚拟的终端接口,例如 /dev/tty1 到 /dev/tty6 通常是系统的本地控制台(文本模式登录界面),而 /dev/tty 指向当前进程关联的控制终端,这里请注意,本地这个词是要重点突出的!!!!!!!!!!另一个是真实的服务器,比如下图,我这个就是tty,虽然是VMware的虚拟机
  2. pty (Pseudo-TTY, 伪终端)

    • pty 是一种软件模拟的终端设备,它提供了一种机制,使得一个进程可以像操作真正的终端一样与另一个进程进行交互,即使后者不是直接连接到物理TTY设备上。
    • 伪终端由两部分组成:一个“主设备”和一个“从设备”。主设备通常称为 ptmx(pseudo-terminal master multiplexer),从设备一般表示为 /dev/pts/*,如 /dev/pts/0/dev/pts/1 等。
    • 当应用程序(如 ssh、telnet 或者终端模拟器如 gnome-terminal)打开一个pty时,操作系统会创建一对pty设备,其中一方(slave端,即pts)用于接受用户的输入并显示输出,另一方(master端)则可以被服务端程序读写,从而实现远程或者本地的命令行交互。
  3. pts (Pseudo-Terminal Slave, 伪终端从设备)

    • pts 是伪终端的一部分,是用户通过终端模拟器或网络协议(如SSH)登录后使用的那部分逻辑终端,它模拟了物理TTY的行为,允许非本地用户获得类似于本地控制台的交互体验。
    • 当你在 SSH 连接到一台远程服务器时,你实际上是在使用一个 pts 设备,可以通过执行 tty 命令查看当前shell所在的pts设备,例如输出可能是 /dev/pts/2

例如,我这个xshell的登录窗口就是pts了

总结:

  • tty 通常指的是所有类型的终端接口,包括物理终端和虚拟终端。
  • pty 是一种软件模拟的终端设备,它可以模拟真实终端的功能,使得远程或本地进程能够像对待真实的TTY那样工作。
  • pts 是 pty 的一部分,具体是指伪终端的从设备,它是与用户交互的实际入口点,在许多情况下用于支持远程登录和本地命令行应用的子进程。

二、

终端管理的意义

通过w,who,tty这些命令可以查看到有哪些终端是登录的,登录的终端是否是符合我们的预期,例如,有不怀好意的人登录了云服务器,那么,其实通过w命令,我们是能初步的判断哪些人是非法的,哪些人是合法合规的登录

为什么这么说呢?例如,现在我的服务器有两个登录,一个是tty1,一个是pts/0 ,而pts/0 是从我的网关登录的,那么,这就可以确定,我的网络里只有我自己啦

如果此时把from里的IP封禁掉,自然的就登录不了了

 06:53:46 up 29 min,  2 users,  load average: 0.00, 0.01, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      06:44    9:06   0.00s  0.00s -bash
root     pts/0    192.168.123.1    06:25    2.00s  0.01s  0.00s w
[root@centos7 ~]# who
root     tty1         2024-03-07 06:44
root     pts/0        2024-03-07 06:25 (192.168.123.1)

三、

t掉其它终端的用户

这个其实非常简单,一个命令的事情(此命令无回显,也就是输出):

pkill -kill -t tty1

想要t掉另一个登录,自然就是下面的命令了(此命令无回显,也就是输出)

pkill -kill -t pts/0

🆗,排查系统重启记录以及登录流水:

[root@centos7 ~]# last
root     pts/0        192.168.123.1    Thu Mar  7 07:12   still logged in   
reboot   system boot  3.10.0-1062.el7. Thu Mar  7 07:11 - 07:21  (00:09)    
root     tty1                          Thu Mar  7 06:44 - 07:09  (00:25)    
root     pts/0        192.168.123.1    Thu Mar  7 06:25 - down   (00:45)    
reboot   system boot  3.10.0-1062.el7. Thu Mar  7 06:24 - 07:10  (00:46)    
root     pts/0        192.168.123.1    Tue Mar  5 23:56 - crash (1+06:28)   
root     pts/0        192.168.123.1    Tue Mar  5 21:44 - 23:44  (02:00)    
root     pts/1        192.168.123.1    Sat Mar  2 19:09 - 08:37  (13:27)    
root     pts/0        192.168.123.1    Sat Mar  2 18:22 - 08:37  (14:14)    
reboot   system boot  3.10.0-1062.el7. Sat Mar  2 18:19 - 07:10 (4+12:51)   
root     pts/1        192.168.123.1    Sat Mar  2 05:53 - crash  (12:26)    
root     pts/0        192.168.123.1    Sat Mar  2 05:19 - crash  (13:00)    
reboot   system boot  3.10.0-1062.el7. Sat Mar  2 05:19 - 07:10 (5+01:51)   
root     pts/1        192.168.123.1    Fri Mar  1 05:42 - crash  (23:37)    
root     pts/0        192.168.123.1    Fri Mar  1 04:57 - crash (1+00:21)   
reboot   system boot  3.10.0-1062.el7. Fri Mar  1 04:57 - 07:10 (6+02:13)   
reboot   system boot  3.10.0-1062.el7. Wed Feb 28 05:11 - 05:11  (00:00)    
root     pts/0        192.168.123.1    Mon Jun 19 02:20 - crash (254+02:50) 
reboot   system boot  3.10.0-1062.el7. Mon Jun 19 02:20 - 05:11 (254+02:51) 
root     pts/0        192.168.123.1    Mon Jun 19 02:11 - crash  (00:08)    
reboot   system boot  3.10.0-1062.el7. Mon Jun 19 02:10 - 05:11 (254+03:01) 
root     pts/0        192.168.123.1    Sun Jun 18 17:55 - crash  (08:14)    
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 17:51 - 05:11 (254+11:20) 
root     tty1                          Sun Jun 18 17:50 - 17:51  (00:00)    
root     pts/0        192.168.123.1    Sun Jun 18 17:50 - crash  (00:01)    
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 17:43 - 05:11 (254+11:28) 
root     tty1                          Sun Jun 18 17:21 - 17:21  (00:00)    
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 17:19 - 17:21  (00:01)    
root     tty1                          Sun Jun 18 16:41 - 09:19  (-7:-21)   
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 16:10 - 17:21  (01:10)    
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 08:49 - 17:21  (08:32)    

wtmp begins Sun Jun 18 08:49:26 2023
[root@centos7 ~]# date
Thu Mar  7 07:21:27 CST 2024

 可以看到,最后一次重启时间是7点11重启的,也就是第二行的倒数第三列

🆗,本文仅仅做为一个简单的记录,很多东西不写记不住,感觉稍微有点意思

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1495894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Echarts 配置项 series 中的 data 是多维度

文章目录 需求分析 需求 如下图数据格式所示,现要求按照该格式进行绘制折线图 分析 在绘制折线图时,通常我们的 series 中的 data 数据是这样的格式 option {title: {text: Stacked Area Chart},tooltip: {trigger: axis,axisPointer: {type: cross…

内容管理平台用这几个就够了,简单又好用

对于大多数企业和自由职业者来说,选择合适的内容管理平台已经成为一种必备的技能。良好的内容管理平台可以赋能你的团队,让你们更好地协作、管理和分享内容。不管你是要发布博客文章,还是需要管理复杂的项目文档,都可以通过内容管…

华为OD机试 - 疫情扩散时间计算 - 矩阵(Java 2024 C卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷&am…

图论 - DFS深度优先遍历、BFS广度优先遍历、拓扑排序

文章目录 前言Part 1:DFS(深度优先遍历)一、排列数字1.题目描述输入格式输出格式数据范围输入样例输出样例 2.算法 二、n皇后问题1.问题描述输入格式输出格式数据范围输入样例输出样例 2.算法 三、树的重心1.问题描述输入格式输出格式数据范围…

Ubuntu 下使用 Pybind11 实现 C++ 调用 Python 接口的示例

Pybind11 是一个轻量级的库,它提供了在 C 中无缝集成 Python 代码的能力。使用 Pybind11,你可以很容易地从 C 调用 Python 代码,反之亦然。下面我将通过一个简单的例子来展示如何在 Ubuntu 系统上使用 Pybind11 从 C 调用 Python 接口。 安装…

嵌入式常见概念介绍

什么是ARM: Advanced RISC Machines 先进RISC机器 嵌入式系统自诞生起就分为两条路: RISC:精简指令集计算机,如ARM,所有指令长度一致,指令数量较少 CISC:复杂指令集计算机&#xff0…

git 如何将多个提交点合并为一个提交点 commit

文章目录 核心命令详细使用模式总结示例 核心命令 git merge branch2 是将分支branch2的提交点合并到本地当前分支。 而在执行这条命令的时候,加一个选项--squash就表示在合并的时候将多个提交点合并为一个提交点。 git merge --squash branch2 先看squash单词的意…

2023年CSP-J认证 CCF信息学奥赛C++ 中小学初级组 第一轮真题-选择题解析

2023年 中小学信息学奥赛CSP-J真题解析 1、在C中,下面哪个关键字用于声明一个变量,其值不能被修改 A、unsigned B、const C、static D、mutable 答案:B 考点分析:主要考查变量声明相关知识,const是声明常量&…

LeetCode 刷题 [C++] 第98题.验证二叉搜索树

题目描述 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 题目分析 由题…

指针数组初始化,不常见啊

今天无意间看到这样一段代码,因为还是第一次看到,这是glibc库里的代码,写出来分享一下: #ifndef ERR_MAP # define ERR_MAP(n) n #endif const char *const _sys_errlist_internal[] { #define _S(n, str) [ERR_MAP(n)] …

职场中的团队合作与个人成长

在职场中,团队合作和个人成长是两个不可或缺的要素。一个优秀的团队可以带来更高的工作效率和更好的业绩,而个人的成长则是职场成功的关键。本文将探讨如何在职场中实现团队合作与个人成长的平衡。 一、团队合作的重要性 在职场中,团队合作是…

授权认证登录之 Cookie、Session、Token、JWT 详解

授权认证登录之 Cookie、Session、Token、JWT 详解 一、先了解几个基础概念什么是认证(Authentication)什么是授权(Authorization)什么是凭证(Credentials) 二、Cookie1、了解 Cookie2、cooker的创建2、coo…

【数据结构】队列 循环队列 双端队列——顺序队列+链式队列完整代码(创建、入队、出队)

2.队列 2.1 队列的定义 定义 只允许在一端进行插入,另一端删除的线性表。 特征:先进先出(First In First Out->FIFO) 重要术语:队头、队尾、空队列 2.2 队列的顺序存储 2.2.1 初始化 结构体 typedef struct{…

数字人民币钱包(二)

文章目录 前言一 什么是数字人民币钱包?二 怎么开通数字人民币钱包?三 数字人民币钱包有哪些?四 数字人民币钱包升级 前言 上篇文章梳理了什么是数字人民币,及其特征和相关概念,这篇文章来整理下数字人民币钱包。数字人…

TOMCAT多实例及调优

一、JVM相关理论 (一)JVM组成 1.JVM组成部分 类加载子系统: 使用Java语言编写.java Source Code文件,通过javac编译成.class Byte Code文件。class loader类加载器将所需所有类加载到内存,必要时将类实例化成实例 运行时数据区…

1908_Arm Cortex-M3的实现

1908_Arm Cortex-M3的实现 全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com) 这是第一次看一份这样的手册,之前的MCU编程基本上就是专注于软件接口方面。而OS等方面的一些功能基本上都是用了现成的解决方案,因此也就没有过多的关注…

NXP iMX8MM Cortex-M4 核心 GPT Capture 测试

By Toradex秦海 1). 简介 NXP i.MX8 系列处理器均为异构多核架构 SoC,除了可以运行 Linux 等复杂操作系统的 Cortax-A 核心,还包含了可以运行实时操作系统比如 FreeRTOS 的 Cortex-M 核心,本文就演示通过 NXP i.MX8MM 处理器集成的 Cortex-…

基于Springboot+Layui餐厅点餐系统

一、项目背景 在互联网经济飞速发展的时代,网络化企业管理也在其带领下快速兴起,开发一款自主点餐系统会受到众多商家的青睐。现如今市场上的人力资源价格是非常高昂的,一款自主点餐系统可以减少餐厅的人力开销,将服务员从繁忙的…

建立自己的富足金字塔

本文的理论参考: 1、《金字塔原理》,可以简述为:上下层互为支撑的结构化表达,通常为1-3-9结构;完全穷举、互不交叉,或不重不漏MECE的分门分类;真实有效,真知灼见。 2、《金线》在金字…

贷齐乐错误的waf引起的SQL注入漏洞复现

君衍. 一、环境介绍1、第一道WAF2、第二道WAF 二、环境部署1、模拟源码2、连接数据库源码3、数据库创建4、测试 三、源码分析1、模拟WAF2、注入思路3、PHP下划线特性4、完成假设 四、联合查询注入1、测试回显字段2、爆出库名3、爆出表名4、爆出表下的列名4、爆出flag 一、环境介…