如何写一个自动化Linux脚本去进行等保测试--引言

#我的师兄喜欢给我的休闲实习生活加活,说是让我在实习期间写一个自动化脚本去进行等保测试。呵呵哒。

怎么办呢,师兄的指令得完成,师兄说让我使用Python完成任务。

设想如下:

1、将Linux指令嵌入到python脚本中

2、调试跑通

3、给指令加上节点做可视化页面

我们的测试方案就按照指导书进行,选用的还是常见服务器系统。

首先是身份鉴别,这部分写的脚本就将一些常用指令嵌入进去到python脚本中,很简单吧。

比如说

输入下面的指令,查看能登录的用户:
   grep '/bin/bash' /etc/passwd

在python中的os库中,存在这样的一个命令:

cmd = os.popen(" grep '/bin/bash' /etc/passwd").read()

(记得先import os 动下脑瓜子

popen就是打开命令栏输入括号内的东西,.read就是直接读取控制流输出,最后保存到cmd中。

这里的话,可能需要输入命令sudo下,因为可能在测评的时候不是root用户。我们需要在提示输入密码的时候程序自动输入密码。

这就需要了解下管道的知识了管道参考浅谈管道(pipe)-CSDN博客

我们需要用到shell中的管道符。简单来说,管道符就是将上一个命令的输出转换为下一个命令的输入。

这里的命令是

cmd = os.popen(" echo password | sudo -S grep '/bin/bash' /etc/passwd").read()

使用这个命令就能够实现自动输入密码啦,这里的密码明文写死password,实际用你自己的密码替换就好。

这里再拓展下,写成下面的形式:

os.system('echo %s | sudo -S %s' % (password, command))

这样等于给这个写成了小接口,让他拓展性使用强一点。

以上内容大致将核心写完了,后面就可以写成自动化的检测脚本去直通了,不过脚本还是有很多局限的,像是不同的系统,不同的环境会报出很多未知的错误,实习老师也说了没啥用,兼容性太差,实际工作的时候还是看工作情况。需要完整脚本学习的关注私聊我。

这边看到了博客介绍了许多自动化脚本,学习一下:

python自动化运维脚本(仅供参考)_设计一个自动化脚本,查看df -h 信息放到日志中-CSDN博客

感谢看到了网上的开源脚本

主机一键巡检脚本--基于python实现_python巡检百台设备完全无压力-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/53254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac 怎么查看CPU核数

在 macOS 系统中,可以通过以下几种方法查看 CPU 核心数: 1. 使用“关于本机”查看 点击左上角的苹果图标()。选择“关于本机”。在弹出的窗口中,系统会显示 Mac 的基本信息,包括 CPU 的类型和核心数。比…

【简历】25届河南某一本JAVA简历:从头到尾都表现的不懂技术

注:为保证用户信息安全,姓名和学校等信息已经进行同层次变更,内容部分细节也进行了部分隐藏 简历总体说明 今天看一份河南某重点一本大学的Java简历。 校招备战第一法则:必须确定自己的求职层次,是大厂、中厂还是小…

php语言基本语法

HP&#xff08;Hypertext Preprocessor&#xff09;是一种广泛使用的开源服务器端脚本语言&#xff0c;特别适合于Web开发。 它能够嵌入到HTML中&#xff0c;执行动态网页内容。 PHP的一些基本语法元素&#xff1a; 1. 基本结构 PHP代码通常嵌入到HTML中&#xff0c;以<…

OpenHarmony(鸿蒙南向开发)——小型系统芯片移植指南(二)

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ OpenHarmony&#xff08;鸿蒙南向开发&#xff09;——轻量系统芯片移植指南(一) Op…

二分系列(二分查找)9/12

一、分情况讨论 1.左闭右闭:[left,right] 因为是左闭右闭&#xff0c;所以left和right都能直接取到。 #这里将>放到一起&#xff0c;当nums[mid]>target的时候&#xff0c; 要更新右边界&#xff0c;rightmid-1,这样就把一些相同的情况也切出去了 可以理解为找的第一个…

iLogtail采集日志过程

iLogtail 是阿里云日志服务(Log Service)提供的一款轻量级日志采集工具,专门用于 Kubernetes 环境下的日志采集。使用 iLogtail 可以方便地将新 Pod 中的日志数据实时采集并上传至阿里云日志服务中。以下是详细的采集步骤: 1. 准备工作 确保你的 Kubernetes 集群已经安装…

基于深度学习的图像分类或识别系统(含全套项目+PyQt5界面)

目录 一、项目界面 二、代码实现 1、数据集结构 2、设置需要模型的训练参数和指定数据集路径 3、网络代码 4、训练代码 5、评估代码 6、结果显示 三、项目代码 一、项目界面 二、代码实现 1、数据集结构 每一个文件夹对应一个类别的数据 2、设置需要模型的训练参数和…

B+树(B+TREE)索引

一、概念 B树索引是数据库和文件系统中广泛使用的一种索引结构&#xff0c;它是B树的一种变体。B树索引的主要特点是能够加快数据的检索速度&#xff0c;同时保持数据的有序性&#xff0c;便于快速查找、插入、删除和顺序访问数据。下面详细介绍B树索引的特点和工作原理。 1.…

09.20 C++对C的扩充以及C++中的封装、SeqList

SeqList.h #ifndef SEQLIST_H #define SEQLIST_H#include <iostream> #include<memory.h> #include<stdlib.h> #include<string.h>using namespace std;//typedef int datatype; //类型重命名 using datatype int;//封装一个顺序表 class Seq…

app抓包 chrome://inspect/#devices

一、前言&#xff1a; 1.首先不支持flutter框架&#xff0c;可支持ionic、taro 2.初次需要翻墙 3.app为debug包&#xff0c;非release 二、具体步骤 1.谷歌浏览器地址&#xff1a;chrome://inspect/#devices qq浏览器地址&#xff1a;qqbrowser://inspect/#devi…

新媒体运营

一、新媒体运营的概念 1.新媒体 2.新媒体运营的五大方向 用户运营 产品运营 。。。 二、新媒体的岗位职责及要求 三、新媒体平台

快速开发与维护:探索 AndroidAnnotations

在移动应用开发的世界中&#xff0c;效率和可维护性是两个至关重要的要素。随着应用功能的不断增长和用户需求的不断变化&#xff0c;开发者们一直在寻找能够提高生产力的工具和框架。今天&#xff0c;我们将深入探讨一个能够帮助开发者实现快速开发和易于维护的框架——Androi…

npm run build报Cannot find module错误的解决方法

目录 一、问题描述二、解决方法一、问题描述 执行 npm run build 报 Cannot find module 错误: npm run build> vite-vue3@0.0.0 build > vite buildfailed to load config from D:\Workspaces\PhpProjects\jjj-edu-master\jjj_edu_admin\vite.config.js error during…

dgl库安装

此篇文章继续上一篇pytorch已经安装成功的情况 &#xff08;python3.9&#xff0c;pytorch2.2.2&#xff0c;cuda11.8&#xff09; 上一篇pytorch安装教学链接 选择与之匹配的版本 输入下方代码进行测试 import dgl.data dataset dgl.data.CoraGraphDataset() print(‘Numb…

使用宝塔部署项目在win上

项目部署 注意&#xff1a; 前后端部署项目&#xff0c;需要两个域名&#xff08;二级域名&#xff0c;就是主域名结尾的域名&#xff0c;需要在主域名下添加就可以了&#xff09;&#xff0c;前端一个&#xff0c;后端一个 思路&#xff1a;访问域名就会浏览器会加载前端的代…

【Redis入门到精通二】Redis核心数据类型(String,Hash)详解

目录 Redis数据类型 1.String类型 &#xff08;1&#xff09;常见命令 &#xff08;2&#xff09;内部编码 2.Hash类型 &#xff08;1&#xff09;常见命令 &#xff08;2&#xff09;内部编码 Redis数据类型 查阅Redis官方文档可知&#xff0c;Redis提供给用户的核心数据…

【HTML5】html5开篇基础(1)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

代码随想录冲冲冲 Day51 图论Part3

101. 孤岛的总面积 dfs 首先dfs的作用就是在遇到陆地的时候找到所有的周围陆地 对于这道题的dfs 会把所有的链接边缘的陆地变成海洋 这样在全部调整之后 剩下的就是孤岛了 这道题中的dfs的结束条件就是遇到海洋时 遇到每一个陆地就会把面积1&#xff0c;在每一次重新找到…

(Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)

接着上一篇文章来搞,批量查询点赞状态。这个接口提供给其他的微服务调用所以这里会用到FeignClient 直接上接口 1. 接口信息 这里是查询多个业务的点赞状态,因此请求参数自然是业务id的集合。由于是查询当前用戶的点赞状态,因此无需传递用戶信息。当前用户指的是登录用户 …

MATLAB绘图:5.三维图形

三维图形 基本的三维绘图包括&#xff1a; 线型&#xff08;Line&#xff09;网格型&#xff08;Mesh&#xff09;区域型&#xff08;Area&#xff09;面型&#xff08;Surface&#xff09;方向矢量型&#xff08;Direction&#xff09;容积型&#xff08;Volumetric&#xf…