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

这篇具有很好参考价值的文章主要介绍了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或其他隐藏的后门。
      •         • 审查安全策略,更新所有软件,并强化系统的防御措施以防止未来的攻击。

        当然,还要看你的系统的具体情况,若仅仅是碰到了一个小问题,建议还是仔细研究,建立好多个安全措施,防范于未然。文章来源地址https://www.toymoban.com/news/detail-810700.html

到了这里,关于Linux安全问题,如何查看哪个用户是可疑用户?如何批量删除这些用户?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux系统用户安全(如何给其他用户授权)及引导登录的控制

    系统账号的清理 将非登录用户的shell设为/sbin/nologin usermod -s /sbin/nologin 用户名(设置为不可登录) 锁定长期不适用的账号 usermod -L 用户名 passwd -l 用户名 passwd -S 用户名 删除无用账号 userdel [-r] 用户名(-r选项删除用户家目录) 锁定账号文件passwd(用户配置文件)、shadow(用

    2024年02月10日
    浏览(55)
  • 如何查看端口是被哪个程序占用的

    一、开始----运行----cmd,或者是window+R组合键,调出命令窗口 二、输入命令: netstat -ano ,列出所有端口的情况。在列表中我们观察被占用的端口,比如是 8080 ,首先找到它。 三、查看被占用端口对应的PID,输入命令: netstat -aon|findstr \\\"8080\\\" ,回车,记下最后一位数字,即PI

    2024年02月13日
    浏览(46)
  • maven 如何查看jar在哪个pom引入

    1、首先,点击 Maven 窗口,然后选中项目(非项目不会出现该图标),再点击查看依赖关系图 Icon,如图所示 2、进入该页面进行 Ctrl + F 搜索需要的 Jar 名称 3、我这里以“hutool” jar为例 4、找到并双击该高亮地方 5、此时就会跳转到对应的 pom 坐标

    2024年02月11日
    浏览(54)
  • git 如何查看本分支是从哪个分支切出来的?

    在Git中,可以通过以下命令查看当前分支是从哪个分支切出来的: 在终端中使用上述命令,可以查看所有分支的提交历史,并用 --decorate 选项将所有分支和tag名称标记到这些提交上。每个提交的左侧的引用标签(如“refs/heads/feature-branch”)将显示当前分支是从哪个分支切出

    2024年02月11日
    浏览(51)
  • Linux中查看端口被哪个进程占用、进程调用的配置文件、目录等

    1.查看被占用的端口的进程, netstat/ss -antulp | grep :端口号 2.通过上面的命令就可以列出,这个端口被哪些应用程序所占用,然后找到对应的进程PID 3.根据PID查询进程。如果想详细查看这个进程,PID具体是哪一个进程,可以通过命令的方式进行查看进程的详细信息, ps -ef | gr

    2024年02月16日
    浏览(46)
  • 账户风险监测系统精准识别可疑情形 账户分类分级管理保障安全

    近年来,不法分子利用银行机构的网络安全漏洞批量开立个人Ⅱ、Ⅲ类虚假账户,并以虚假账户为鉴权源,在其他银行机构继续开立Ⅱ、Ⅲ类虚假账户,利用所开立的虚假账户从事“薅羊毛”“假冒客户登录并盗取第三方支付平台资金”“兜售虚假账户信息”“诈骗”“洗钱

    2024年04月11日
    浏览(43)
  • pytorch如何查看tensor和model在哪个GPU上以及指定GPU设备

    1. 查看tensor所在的设备: 2. 查看model所在的设备 3. Pytorch中将模型和张量加载到GPU的常用方法有两种。 方式1: 方式2: 4. 指定GPU代码 参考链接:PyTorch 中 选择指定的 GPU 注意需要将指定GPU代码放在程序段最开始的部位,如下图所示: 5.查看gpu个数

    2024年02月13日
    浏览(43)
  • 【Linux问题合集001】Linux中如何将用户添加到sudo组中的步骤

    看教程的前提我的linux当前用户是zhou,看以下步骤时将zhou看做你的liunx当前用户就行了: 在Linux系统中,root用户是具有完全系统管理权限的超级用户。要以root用户身份登录到系统,您可以使用以下方法之一: 切换用户 如果您当前已登录到系统,则可以使用 su 命令(表示“

    2024年02月09日
    浏览(47)
  • Linux中批量创建用户的方法

    在Linux中,可以使用脚本来批量创建用户。以下是一个具体的步骤: 1)在 /home/user1/ 目录下创建目录: 执行命令 sudo chown root:root /home/user1 将 /home/user1 目录的所有者和所属组都修改为 root。这意味着只有 root 用户(超级用户)才能对该目录进行修改和访问,其他用户将无法更

    2024年02月02日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包