Linux安全问题,如何查看哪个用户是可疑用户?如何批量删除这些用户?

目                   录

一、可疑用户是一个安全问题

二、查看Linux用户、新建的用户

(一)Linux里查看所有用户的命令

1、直接查看/etc/passwd文件

2、使用getent passwd命令查看

3、字段解释

4、用户信息解释

(二)只查看用户主要信息

1、只查看用户名

2、只查看用户名、用户ID、用户全名和描述

(三)Linux里查看普通用户(非系统用户)

三、系统被入侵并新建用户

四、删除所有新建的用户


一、可疑用户是一个安全问题

        当Linux系统被人入侵时,攻击者很可能会尝试新建账户来保持对系统的持久访问。通过创建新的用户账户,攻击者可以更容易地隐藏他们的活动,并在将来重新获得访问权限,即使他们的初步入侵行为被检测到并进行了某些清理工作。

        特别是我们平常一直基于网络的系统,比如视频监控平台、视频会议MCU、融合通信平台等等。网络是这些系统的基础,没有网络安全,就没有这些应用的安全。

        那我们应该如何才能知道:是否有人新建了账户(或新建用户)了呢?

二、查看Linux用户、新建的用户

(一)Linux里查看所有用户的命令

1、直接查看/etc/passwd文件

可以使用/etc/passwd文件来查看,这个文件存储了所有用户的信息。

[yunwei@ecs-52a1 ~]$ cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin

systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin

tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin

polkitd:x:998:996:User for polkitd:/:/sbin/nologin

unbound:x:997:995:Unbound DNS resolver:/etc/unbound:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sssd:x:996:993:User for sssd:/:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

chrony:x:995:992::/var/lib/chrony:/sbin/nologin

rngd:x:994:991:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

mysql:x:1000:1000::/home/mysql:/bin/bash

clamav:x:1001:1001::/home/clamav:/bin/bash

vidisit:x:1002:1002::/home/vidisit:/bin/bash

yunwei:x:1003:1003::/home/yunwei:/bin/bash

2、使用getent passwd命令查看

[yunwei@ecs-52a1 ~]$ getent passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin

systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin

tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin

polkitd:x:998:996:User for polkitd:/:/sbin/nologin

unbound:x:997:995:Unbound DNS resolver:/etc/unbound:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sssd:x:996:993:User for sssd:/:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

chrony:x:995:992::/var/lib/chrony:/sbin/nologin

rngd:x:994:991:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

mysql:x:1000:1000::/home/mysql:/bin/bash

clamav:x:1001:1001::/home/clamav:/bin/bash

vidisit:x:1002:1002::/home/vidisit:/bin/bash

yunwei:x:1003:1003::/home/yunwei:/bin/bash

3、字段解释

        如上两个命令的结果,每一行代表一个用户的账户信息,各字段由冒号(:)分隔。每个字段的解释如下:

(1)用户名(Username

  • 这是用户的登录名,用于在系统中唯一标识用户。例如,root是超级用户的用户名。

(2)密码(Password

  • 这个字段在早期的Unix系统中直接存储了用户的加密密码,但在现代Linux系统中,它通常包含一个占位符(例如x)或用于其他身份验证机制的字符串。实际的加密密码存储在/etc/shadow文件中,该文件的访问权限更为严格。

(3)用户IDUser ID, UID

  • 这是一个数字,用于在系统中唯一标识用户。超级用户的UID通常是0,而系统账户的UID通常在1-999之间。普通用户的UID通常从1000开始,并且是唯一的。

(4)IDGroup ID, GID

  • 这个数字表示用户的主(或默认)用户组。每个用户都属于至少一个用户组,而GID就是该用户组在系统中的唯一标识。

(5)用户全名或描述(GECOS

  • 这个字段通常包含用户的全名或其他描述性信息。它可以包含多个由逗号分隔的字符串,但这些字符串通常不被系统使用,而是为人类阅读者提供信息。

(6)家目录(Home Directory

  • 这是用户登录后所处的目录。用户的个人文件和设置通常存储在这个目录下。例如,普通用户的家目录可能是/home/username。

(7)默认ShellShell

  • 这个字段指定了用户登录后用于执行命令的程序。例如,/bin/bash是Bash shell的路径,它是许多Linux系统的默认shell。

4、用户信息解释

如第1、2节中显示的用户信息,我们拿出三个:

root:x:0:0:root:/root:/bin/bash

daemon:x:2:2:daemon:/sbin:/sbin/nologin

yunwei:x:1003:1003::/home/yunwei:/bin/bash

(1)第一行root是超级用户,UID和GID都是0,家目录是/root,默认shell是/bin/bash。

(2)第三行daemon是一个系统用户,通常用于运行后台服务,它的shell设置为/usr/sbin/nologin,表示这个用户不能登录系统。

(3)最后一行yunwei是一个普通用户,UID和GID都是1003,家目录是/home/ yunwei,默认shell也是/bin/bash

(二)只查看用户主要信息

1、只查看用户名

方法1: cat /etc/passwd | cut -d: -f1

[yunwei@ecs-52a1 ~]$ cat /etc/passwd | cut -d: -f1

root

bin

daemon

adm

lp

sync

shutdown

方法2:awk -F: '{ print $1, }' /etc/passwd

[yunwei@ecs-52a1 ~]$ awk -F: '{ print $1 }' /etc/passwd

root

bin

daemon

adm

lp

sync

shutdown

方法3:getent passwd | cut -d: -f1

[121yunwei@ecs-52a1 ~]$ getent passwd | cut -d: -f1

root

bin

daemon

adm

lp

sync

shutdown

2、只查看用户名、用户ID、用户全名和描述

方法1: cat /etc/passwd | cut -d: -f1,3,5

[yunwei@ecs-52a1 ~]$ cat /etc/passwd | cut -d: -f1,3,5

root:0:root

bin:1:bin

daemon:2:daemon

adm:3:adm

lp:4:lp

sync:5:sync

shutdown:6:shutdown

方法2:awk -F: '{ print $1, $3, $5 }' /etc/passwd

[yunwei@ecs-52a1 ~]$ awk -F: '{ print $1, $3, $5 }' /etc/passwd

root 0 root

bin 1 bin

daemon 2 daemon

adm 3 adm

lp 4 lp

sync 5 sync

shutdown 6 shutdown

(三)Linux里查看普通用户(非系统用户)

第三个参数:1000以上的,就是后面建的用户了,也就是普通用户;其它则为系统的用户.可以使用如下命令:

        awk -F: '$3>1000{print $1,$3}' /etc/passwd

实际操作效果如下:

[yunwei@ecs-52a1 ~]$ awk -F: '$3>1000{print $1,$3}' /etc/passwd

nobody 65534

clamav 1001

vidisit 1002

yunwei 1003

[yunwei@ecs-52a1 ~]$

三、系统被入侵并新建用户

        当Linux系统被人入侵时,攻击者很可能会尝试新建账户来保持对系统的持久访问。通过创建新的用户账户,攻击者可以更容易地隐藏他们的活动,并在将来重新获得访问权限,即使他们的初步入侵行为被检测到并进行了某些清理工作。

        以下是一些迹象,可能表明系统已经被入侵并新建了账户:

  1. 检查/etc/passwd文件:这个文件包含了系统上所有用户的信息。如果你发现有不熟悉的用户名,尤其是UID不在系统默认范围内的(通常普通用户的UID从1000开始),那么这可能是一个被添加的恶意账户。
  2. 检查/etc/shadow文件:这个文件包含了用户的加密密码信息。如果你发现有与/etc/passwd中不匹配的条目,或者密码字段看起来不寻常(例如,非常短的密码哈希,或者全为相同字符的哈希),那么这可能是入侵者添加的账户。
  3. 查看用户目录:在/home目录下检查是否有不熟悉的用户目录。这些目录可能包含攻击者的工具、脚本或其他恶意文件。
  4. 检查系统日志:检查如/var/log/auth.log(取决于发行版,日志位置可能有所不同)等日志文件,以查找任何与账户创建或认证失败相关的可疑条目。
  5. 使用lastw命令:这些命令可以显示最近登录的用户和当前登录的用户。如果你看到不熟悉的用户名,那么这可能是入侵者的账户。
  6. 检查网络连接和进程:使用netstat、lsof或ss命令查看当前的网络连接和监听的端口。使用ps命令查看正在运行的进程。如果你发现任何不熟悉或可疑的连接或进程,那么系统可能已经被入侵。
  7. 检查计划任务和服务:攻击者可能会添加计划任务(例如,在/etc/crontab、/etc/cron.*/*或用户的crontab文件中)或启动新的服务来保持持久性。检查这些位置以查找任何不寻常的条目。

四、删除所有新建的用户

        发现可疑用户,若发现单个,可以直接userdel命令删掉对应的用户。但是有时候,入侵者会建立多个用户,混淆我们的思维,这里,我们有办法删除所有新建的普通用户。需要采用一个脚本代码,如下:

#!/bin/bash
#先使用 awk 获取所有 uid 大于 1000 的普通用户名称
#再使用 for 循环,用userdel将每个用户删除即可
use r = $(awk -F: '$3>1000 {print $1}' /etc/passwd)
for i in $user
do
userdel -r $i 
done

        总之,如果你发现您的机器出现被入侵的迹象,最佳的做法通常是:

  •         • 立即断开系统与网络的连接,以防止进一步的数据泄露或损害。
    •         • 从已知的干净备份中恢复系统,而不是尝试手动清理恶意账户和文件,因为攻击者可能已经安装了rootkit或其他隐藏的后门。
      •         • 审查安全策略,更新所有软件,并强化系统的防御措施以防止未来的攻击。

        当然,还要看你的系统的具体情况,若仅仅是碰到了一个小问题,建议还是仔细研究,建立好多个安全措施,防范于未然。

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

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

相关文章

logstack 日志技术栈-04-opensource 开源工具 Syslog-ng+Highlight.io

5. Syslog-ng Syslog-ng 是一个开源的日志管理解决方案,主要用于收集和处理日志数据。它可以从多种源收集日志,包括系统日志、网络设备日志和第三方应用日志。 然后将日志解析、分类、重写和关联到统一格式中,然后将其存储或安全地传输到不同…

[ tool ] Xpath选择器和selenium工具基本使用

XPath xpath介绍 是一门在XML文档中查找信息的语言 html文档准备 doc <html><head><base hrefhttp://example.com/ /><title>Example website</title></head><body><div idimages><a hrefimage1.html aabb>Name: My…

JVM工作原理与实战(二十一):内存管理

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、不同语言的内存管理 1.C/C的内存管理 2.Java的内存管理 二、垃圾回收的对比 1.自动垃圾回收与手动垃圾回收的对比 2.优点与缺点 总结 前言 JVM作为Java程序的运行环境&#…

区字棋中的最长非0链

一&#xff0c;区字棋 也叫憋死牛棋。 规则&#xff1a; 棋盘一共只有5个点&#xff0c;双方各2个棋子&#xff0c;还有一个空格。 先手必须移动左边的棋子&#xff0c;之后没有限制&#xff0c;2个棋子任意一个移动到空格皆可。 无法移动者判负。 二&#xff0c;不败策略…

vue对axios进行二次封装

前言 在Vue中&#xff0c;对Axios进行二次封装可以提高代码的可重用性和可维护性。通过封装&#xff0c;我们可以将请求的配置、错误处理和拦截器等逻辑集中到一个地方&#xff0c;方便后续的修改和扩展。此外&#xff0c;封装Axios还可以简化代码&#xff0c;减少重复的请求配…

ubuntu20遇到缺少qt4相关库的问题

最近需要做套接字通讯的工作&#xff0c;最好是有一个网络调试软件能够接受或者发送套接字&#xff0c;测试代码能够正常通讯。windows下有很多&#xff0c;但是linux下比较少&#xff0c;使用广泛的是下面这一款。 1、安装 首先从网盘&#xff08;链接: https://pan.baidu.c…

String在VS与Linux下的区别

目录 一、string的成员 1.VS 2.Linux 二、string的扩容机制 1. VS 2.Linux 一、string的成员 string是C标准库中的一个类模板&#xff0c;用于表示和操作字符串 string在 Windows 与 Linux 中的成员不是相同的 1.VS 4个成员&#xff1a;_str , _size , _capacity 和…

71.工作中redis的常用场景总结

文章目录 一、简介二、统计访问次数三、缓存四、分布式锁五、限流六、排行榜七、作为Session的存储器&#xff0c;存用户登录状态八、位统计九、生成全局ID 一、简介 Redis作为一种优秀的基于key/value的缓存&#xff0c;有非常不错的性能和稳定性&#xff0c;无论是在工作中&…

【ARM Cortex-M 系列 1.1 -- Cortex-M33 与 M4 差异 详细介绍】

请阅读【嵌入式开发学习必备专栏 之 Cortex-Mx 专栏】 文章目录 背景Cortex-M33 与 M4 差异Cortex-M33Cortex-M4关系和差异举例说明 背景 在移植 RT-Thread 到 瑞萨RA4M2&#xff08;Cortex-M33&#xff09;上时&#xff0c;遇到了hardfault 问题&#xff0c;最后使用了Cortex…

大数据开发之kafka(完整版)

第 1 章&#xff1a;Kafka概述 1.1 定义 Kafka是一个分布式的基于发布/订阅模式的消息队列&#xff0c;主要应用于大数据实时处理领域。 发布/订阅&#xff1a;消息的发布者不会将消息直接发送给特定的订阅者&#xff0c;而是将发布的消息分为不同的类别&#xff0c;订阅者只…

全志A133AndroidQ编译方式

编译uboot&#xff1a; cd longan/brandy/brandy-2.0 ./build.sh -p sun50iw10p1 //A133-android-10-plus\longan\brandy\brandy-2.0\u-boot-2018\u-boot.bin复制为u-boot-sun50iw10p1.bin 或者 //longan\brandy\brandy-2.0\u-boot-2018\configs\sun50iw10p1_defconfig cd …

Java String基础学习

目录 1、String的构造方法 2、String内存模型 3、字符串的比较 4、字符串的练习 1、用户登录系统 2、遍历字符串 3、统计字符次数 4、拼接字符串 5、字符串的反转 6、金额转换 7、手机号屏蔽 * 8、身份证信息查看 9、敏感词替换 5、StringBuilder 1、概念及练习…

leetcode热题100.三数之和

Problem: 15. 三数之和 文章目录 题目解题方法复杂度Code 题目 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元…

【51单片机Keil+Proteus8.9】控制步进电机+LCD1602显示状态

步进电机控制 设计思路 电路设计&#xff1a; 选用AT89C51单片机作为电路核心部件&#xff0c;外加LM016L液晶显示屏作为显示&#xff0c;显示步进电机的Fast&#xff0c;Slow&#xff0c;Stop的三个状态将AT89C51单片机所选引脚与LM016L控制引脚相连&#xff0c;再将数据通…

ASEPRITE使用笔记

aseprite学习笔记 快捷键 新建图层后,按快捷键c可以调出画布属性框放大缩小画布快捷键,鼠标滚轮移动画布快捷键,空格ctr+d,取消选取基本概念 软件五个基本区域:菜单栏、工具属性栏、工具栏、图层栏、颜色栏颜色栏分为色板和调色区域注意事项 创造时,需要把输入法调整成应…

03.net6必须熟悉的类

C#必须熟悉的类 值和实例 true&#xff0c;false ,“”,‘a’,34f,34,34m&#xff0c;“ggd”,$“gg{age}” 基本类型和常用类型 byte int char decimal float double string DateTime TimeSpan bool Array dynamic var 自动推断类型 常用类型 Object Console Math …

java创建线程的三种方式

1、实现Runnable接口 这是最常用的方法&#xff0c;需要创建一个实现Runnable接口的类&#xff0c;并重写run()方法。然后&#xff0c;创建一个Thread对象并将这个实现Runnable接口的类的实例作为参数传递给Thread的构造函数。最后&#xff0c;调用Thread对象的start()方法来启…

(2024,VMamba,交叉扫描,线性复杂度,全局感受野,动态权重)视觉状态空间模型

VMamba: Visual State Space Model 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 3. 方法 3.1 基础概念 3.2 2D 选择性扫描 3.3 VMamba 模型 3.3.1 整体架构 3.3.2 VSS…

大数据开发之Kafka(broker、消费者、eagle监控、kraft模式)

第 4 章&#xff1a;Kafka Broker 4.1 Kafka Broker工作流程 4.1.1 Zookeeper存储的Kafka的信息 1、查看zookeeper中的kafka节点所存储的信息 启动Zookeeper客户端 [atguiguhadoop104 zookeeper-3.5.7]$ bin/zkCli.sh 通过ls命令列出kafka节点内容 [zk: localhost:2181(CO…

Windows11添加美式(纯英文)输入法

打开设置&#xff0c;选择“时间和语言” 选择“语言和区域” 检查语言中否有英语&#xff08;美国&#xff09;&#xff0c;如果没有&#xff0c;请单击“添加语言” 单击英语&#xff08;美国&#xff09;右方的更多选项按钮&#xff0c;选择“语言选项” 找到下方“键盘…