BVS安全检测之检查Linux是否口令生存周期
口令生存周期的配置文件为 /etc/login.defs
vim 打开该文件,命令模式下输入 /PASS_MAX_DAYS 找到该配置信息的位置
我的Linux操作系统默认显示的是99999,说明我当前用户密码的生存周期为99999天
默认配置如图:

PASS_MAX_DAYS为密码最长使用时间,多少天后会有提醒
PASS_MIN_DAYS为密码最短使用时间,意思是多少天内不能修改密码
PASS_WARN_AGE密码过期后会提醒多少天,这些天内还没有修改密码的用户,账户会被冻结
我们可以输入 cat /etc/shadow 查看当前用户的这些信息

0为PASS_MIN_DAYS, 99999为PASS_MAX_DAYS, 7为PASS_WARN_AGE
和配置的信息一样。
现在我们的安全检查要求用户的Linux系统的口令生存周期时间应该小于等于标准值90,
请编写一个脚本测试该Linux系统是否满足该安全条件:
#!/usr/bin/env python3 import re def piv(filename):
with open(filename, "r") as f:
text = f.read()
result = re.search("PASS_MAX_DAYS\s*(\d+)",text).group(1)
if int(result) <= 90:
return True
return False if __name__ == "__main__":
filename = "/etc/login.defs"
print(piv(filename))
打开文件/etc/login.defs并对其内容进行读取,在使用正则表达式匹配文中的PASS_MAX_DAYS 99999,
以此得到后面的数字,再对其进行判断即可。只要它小于等于90,则满足安全的条件。
这里的正则表达式为 "PASS_MAX_DAYS\s*(\d+)",
意思就是PASS_MAX_DAYS后跟0个或多个空白字符,再跟1个或多个数字。将数字子组话(加括号),方便提取。
同样PASS_WARN_AGE的要求值>=30的检测方法是相同的。
#!/usr/bin/env python3 import re def pass_warn_age(filename):
with open(filename) as f:
text = f.read()
result = re.search("PASS_WARN_AGE\s*(\d+)",text).group(1)
if int(result) >= 30:
return True
return False if __name__ == "__main__":
filename = "/etc/login.defs"
print(pass_warn_age(filename))
重新做了一遍(Python版)
#!/usr/bin/env python
# -*- coding:utf-8 -*- import os
import re filename = "/etc/login.defs" #如果文件存在
if os.path.exists(filename):
with open(filename) as f:
text = f.read()
try:
ret = re.search("PASS_MAX_DAYS\s+(\d+)",text).group(1)
except AttributeError:
print("The file's PASS_MAX_DAYS configuration is wrong! Please check it")
else:
#如何PASS_MAX_DAYS的值大于0小于等于90,则合规
if 0< int(ret) <= 90:
print("PASS_MAX_DAYS ok")
else:
print("PASS_MAX_DAYS fail")
else:
print("The file '/etc/login.defs' is not found!!!")
bash
file="/etc/login.defs";
#如果文件存在,grep -v过滤掉有#的行,在grep PASS_MAX_DAYS,
if [ -s ${file} ];then
ret=`cat ${file} | grep -v "#" | grep PASS_MAX_DAYS | awk -F ' ' '{print $2}'`;fi if [ -ne $ret -a -ge $ret ];then
echo "PASS_MAX_DAYS ok";
else
echo "PASS_MAX_DAYS fail";fi
BVS安全检测之检查Linux是否口令生存周期的更多相关文章
- linux用户管理,linux用户口令管理,linux用户组管理,linux用户权限管理详解
linux用户管理 http://www.qq210.com/shoutu/android 用户账号的添加(新加用户需添加用户口令) :增加用户账号就是在/etc/passwd文件中为新用户增加一条记 ...
- FreeRadius+GoogleAuthenticator实现linux动态口令认证
简介 在运维管理中,服务器的密码管理十分重要.服务器数量少的时候还好说,可以定时来改密码.一旦数量多了,再来改密码就不现实了. 前提 我们假定运维访问服务器是这样的: 创建一个普通用户用于登录服务器, ...
- 浅谈如何检查Linux中开放端口列表
给大家分享一篇关于如何检查Linux中的开放端口列表的详细介绍,首先如果你想检查远程Linux系统上的端口是否打开请点击链接浏览.如果你想检查多个远程Linux系统上的端口是否打开请点击链接浏览.如果 ...
- 检查 Linux 服务器性能
如何用十条命令在一分钟内检查 Linux 服务器性能 如果你的Linux服务器突然负载暴增,报警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文 ...
- 检查Linux服务器性能的关键十条命令
检查Linux服务器性能的关键十条命令 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL ...
- Linux有问必答:如何检查Linux的内存使用状况
-1. /proc/meminfo11% -2. atop20% -3. free29% -4. GNOME System Monitor35% -5. htop41% -6. KDE System ...
- [转帖]如何用十条命令在一分钟内检查 Linux 服务器性能
如何用十条命令在一分钟内检查 Linux 服务器性能 时间:2016-09-28 作者:admin 分类:新手入门 阅读:246次 http://embeddedlinux.org.cn/emb- ...
- 检查linux是否安装java、tomcat、mysql
linux下,查看安装软件 1.linux下的java Java -version 如果出现java版本,证明java安装成功. 2.linux下的tomcat 2.1.检查linux是否安装tomc ...
- 我们通常这样使用Linux弱口令检测!
在Internet环境中,过于简单的口令是服务器面临的最大风险,对于管理员来说,即使找出这些弱口令账号是非常必要的,这样便于采取进一步的安全措施. 这里的话,弱口令检测需要用到一款密码破译软件--Jo ...
随机推荐
- PHP实现链式操作的三种方法详解
这篇文章主要介绍了PHP实现链式操作的三种方法,结合实例形式分析了php链式操作的相关实现技巧与使用注意事项,需要的朋友可以参考下 本文实例讲述了PHP实现链式操作的三种方法.分享给大家供大家参考,具 ...
- Android的界面组件使用之ImageButton和ImageView,ImageSwitcher和GridView
(一)ImageButton和ImageView ImageButton与Button的功能完全相同,只是ImageButton上显示的是图像,并且每个ImageButton组件都必须指定一个id,以 ...
- Python 基础之面向对象之类中的方法和与类相关的魔术属性以及反射
一.类中的方法 普通方法: 没有参数,只能类调用绑定方法: (1)绑定到对象(自动传递对象参数) (2)绑定到类(自动传递参数)静态方法: 无论是类还是对象,都能调用的方法#例:class Dog() ...
- preg_replace相关问题
preg_replace preg_replace 函数执行一个正则表达式的搜索和替换. 语法: preg_replace ( mixed $pattern , mixed $replacement ...
- 使用win32com操作woord的方法记录
CSDN博客平台中有众多的 win32com 库操作word 的说明,对于通用的内容将一笔带过,主要介绍目前看来独一无二的内容. import win32com from win32com.clien ...
- 笔记-pymysq-exception
笔记-pymysq-exception 1. exception DB API中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常: 基本上是继承了Exception基类,没有添加额外功能. ...
- httpclient post 请求
package com.thinkgem.jeesite.common.utils; import org.apache.http.HttpEntity; import org.apache.http ...
- 在PyCharm中自动添加文件头、时间日期等信息
初次安装使用PyCharm,在新建.py文件时会发现文件头并没有什么信息,因此,使用模板会比较方便.方法如下: 1.打开PyCharm,选择File--Settings 2.依次选择Editor--- ...
- 2020年digitalocean最新优惠码100美元奖励
欧美免备案vps服务器digitalocean我用了四年,创建一台vps速度非常快. 由于中国用户扎堆购买Vultr和Linode线路,导致digitalocean中国用户少,反而更稳定.digita ...
- Linux系统监控 zabbix-agent 主机添加的操作页面
#!/bin/bash#设置解析#安装zabbix源.aliyun YUM源# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zab ...