Python检查系统可疑用户

最近一台服务器被攻击了,攻击者在服务器上替换了一个系统命令,如ps,ss,netstat,lsof等文件。怎么排查的就不说了。本文的主要目的是写一个检查系统用户的一个脚本,检查哪些系统用户有家目录,哪些用户没有家目录,以及哪些用户可以登录系统。

我们这里的环境有点乱,有的服务器上的web用户可以登录系统,有的系统上却不能登录系统,很是不规范,因此写了这么一个脚本来做检查。接下来,就直接上代码了,主要用到了pwd及spwd模块,

# encoding: utf8
# written by lavenliu at 20170211

import pwd
import spwd

sys_users = {}
usr_no_passwd = []
usr_has_passd = []

users_entry = pwd.getpwall()
for entry in users_entry:
    sys_users[entry.pw_name] = entry.pw_shell

for username in sys_users.keys():
    pass_entry = spwd.getspnam(username)
    if pass_entry.sp_pwd == ‘!!‘ or pass_entry.sp_pwd == ‘*‘:
        usr_no_passwd.append(pass_entry.sp_nam)
    else:
        usr_has_passd.append(pass_entry.sp_nam)

print "These users have home directory:"
for user, home in sys_users.items():
    if home == ‘/sbin/nologin‘:
        continue
    else:
        print "%15s: %s" % (user, home)

print
print "These users can login system:"
for user in usr_has_passd:
    print user

执行结果为:

# python chkuser.py 
These users have home directory:
           sync: /bin/sync
       shutdown: /sbin/shutdown
           halt: /sbin/halt
           root: /bin/bash

These users can login system:
root

从执行结果看,目前只有root用户可以登录系统。

时间: 2024-11-05 06:11:17

Python检查系统可疑用户的相关文章

python 保障系统(一)

python  保障系统 from django.shortcuts import render,redirect,HttpResponse from app01 import models from django.forms import Form from django.forms import fields from utils.pager import PageInfo # Create your views here. class Logins(Form): # 定一个Form组件验证

Linux系统下用户与组的管理

Linux系统下用户与组的管理 一.用户及组基本概述 Linux 系统上,用户管理是基于用户名和密码的方式进行资源的分配. 1.uid(用户身份标识) (1)root用户 uid为0 (2)普通用户:1--65535 系统用户 系统已经已经存在专门用来对系统服务或者系统资源进行管理的 1--499(CentOS 6.X) 1--999 (CentOS 7.X) 登录用户(平时专门做系统管理的用户) 500+ (CentOS 6.X) 1000+ (CeentOS 7.X) 2.gid(用户组身份

python 报障系统(完)

python 报障系统(完) 一.报障系统原理: 原理: 1. 简单管理 2. 角色多管理(权限) a. 登录 session放置用户信息(检测是否已经登录) session放置权限信息(检测是否有权访问) { '/index.html':[GET,EDIT], '/order.html':[GET,EDIT], '/xxx.html':[GET,EDIT...], '/xxx.html':[GET,EDIT...], '/xxx.html':[GET,EDIT...], '/xxx.html'

linux下发现可疑用户时处理办法

如果发现了linux被可疑用户远程登录了,怎么解决呢? 1.先查看最近系统的登录情况 last -10 表示最近10个用户登录的信息,如果发现有可疑账户,就是密码被破解了 [[email protected] ~]# last -10root pts/3 192.168.2.29 Fri Jul 31 10:16 - 10:17 (00:01) root pts/2 192.168.2.29 Fri Jul 31 10:15 - 10:17 (00:01) root pts/1 192.168.

iOS开发——Swift实用技术篇&检查系统版本

Swift如何检查系统版本 指责Swift是“没有C的Objective-C”的说法不够准确,是因为Swift和Objective-C缺少相似之处,而不是没有C.Swift根本不是类C语言. 毫无疑问Swift从Haskell.Rust.Python.D语言等现代编程语言里获得灵感,但你最好把它理解成拒绝了C语言中一些坏掉地方的语言: · C语言是默认类型不安全的.Swift则默认为安全(因此Swift中的指针操作函数命名中加上unsafe)(译者注:见在Swift中使用遗留的C API). ·

Python选课系统

Python选课系统 一.程序介绍 需求: 开发一个简单的python计算器 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 3. 课程包含,周期,价格,通过学校创建课程 4. 通过学校创建班级, 班级关联课程.讲师 5. 创建学员时,选择学校,关联班级 6. 创建讲师角色时要关联学校, 7. 提供两个角色接口 7.1 学员视图, 可以注册, 交学费, 选择班级,

【Linux系统】用户与组账号管理实例与讲解

用户账号与组账号管理 下面是我对用户账号与组账号之间的一些整理与实例配置. 在Linux系统中用户和组账号分为以下几点: 超级用户:root用户是Linux默认的超级用户具有相当于windows系统中的administrator的作用. 普通用户:普通用户的账号需要由root或其它管理员用户创建. 程序用户:用于添加Linux系统中的一些特定的低权限的用户.(这些用户只用于维持或某个程序的正常运行) 组账号 基本组(私有组):每一个账号都有自己的属于自己的组. 附加组(公共组):与其他用户在同一

安装Oracle客户端时,检查系统要求时状态为错误的解决办法

这是我自己安装oracle11g至win7的错误记录: 正在检查操作系统要求...要求的结果: 5.0,5.1,5.2,6.0 之一实际结果: 6.1 我换了 10g,11g从32bit到64bit折腾了好多次,最后终于找到了解决的方法-- 看到那一个错误了么?实际上是因为配置文件引起的 找到 refhost.xml 文件(位置:database/stage/prereq/db,打开 refhost.xml 配置文件并找到 <CERTIFIED_SYSTEMS> 节点,接着在节点后面修改6.0

Oracle EBS-SQL (BOM-9):检查系统BOM总数.sql

SELECT      ITM.SEGMENT1                         物料编码     ,ITM.DESCRIPTION                     物料描述     ,bom2.CREATION_DATE              创建日期     ,BOM2.ALTERNATE_BOM_DESIGNATOR  替代BOM     ,FU.description                           操作者FROM INV.MTL_SYST