Python檢查系統可疑用戶

最近一臺服務器被***了,***者在服務器上替換了一個系統命令,如ps,ss,netstat,lsof等文件。怎麼排查的就不說了。本文的主要目的是寫一個檢查系統用戶的一個腳本,檢查哪些系統用戶有家目錄,哪些用戶沒有家目錄,以及哪些用戶可以登錄系統。


我們這裏的環境有點亂,有的服務器上的web用戶可以登錄系統,有的系統上卻不能登錄系統,很是不規範,因此寫了這麼一個腳本來做檢查。接下來,就直接上代碼了,主要用到了pwd及spwd模塊,比起使用讀入/etc/passwd及/etc/shadow文件,然後對其進行處理要方便的多。

# 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用戶可以登錄系統。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章