最近一台服务器被攻击了,攻击者在服务器上替换了一个系统命令,如ps,ss,netstat,lsof等文件。怎么排查的就不说了。本文的主要目的是写一个检查系统用户的一个脚本,检查哪些系统用户有家目录,哪些用户没有家目录,以及哪些用户可以登录系统。
我们这里的环境有点乱,有的服务器上的web用户可以登录系统,有的系统上却不能登录系统,很是不规范,因此写了这么一个脚本来做检查。接下来,就直接上代码了,主要用到了pwd及spwd模块,比起使用读入/etc/passwd及/etc/shadow文件,然后对其进行处理要方便的多。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# 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
|
执行结果为:
|
1
2
3
4
5
6
7
8
9
|
# 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用户可以登录系统。
版权声明:原创作品,如需转载,请注明出处。否则将追究法律责任