#!/usr/bin/python # coding: utf-8 import os, sys, public _title = '检查是否存在空密码用户' _version = 1.0 # 版本 _ps = "检查是否存在空密码用户" # 描述 _level = 3 # 风险级别: 1.提示(低) 2.警告(中) 3.危险(高) _date = '2023-11-21' # 最后更新时间 _ignore = os.path.exists("data/warning/ignore/sw_empty_passwd_user.pl") _tips = [ "使用root登录服务器,给空密码用户设置密码", "若不清楚用户的用处可以执行命令【passwd -l (用户名)】暂时封锁用户", "解锁用户命令【passwd -fu (用户名)】" ] _help = '' _remind = '检测到存在空白密码的用户,可能是黑客保留的后门用户,若非业务需求建议设置密码。' def check_run(): ''' @name 开始检测 @author lwh<2023-11-21> @return tuple (status,msg) ''' user_list = [] try: output, err = public.ExecShell('awk -F: \'NF && $2 == "" {print}\' /etc/shadow') if err == '' and output != '': output_list = output.strip().split('\n') for op in output_list: user_list.append(op.split(':')[0]) if len(user_list) > 0: return False, '发现空密码用户【{}】'.format('、'.join(user_list)) except: return True, '无风险' return True, '无风险'