《Web测试囧事》——1.10 多余的空格造成服务器被删除

简介:

本节书摘来自华章计算机《Web测试囧事》一书中的第1章,第1.10节,作者 黄勇 雷辉 徐潇 杨雪敏,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.10 多余的空格造成服务器被删除

在敏捷测试中,测试工作不仅包括设计和执行测试用例、编写测试报告,以及测试计划和策略的制定,还有测试部署脚本等工作。这次小蔡在执行部署脚本的测试过程中发现了一个严重的问题,这个Bug会导致整个测试服务器被删除,事情的缘由是这样的。

小蔡根据开发人员提交的部署脚本和执行步骤,一步步在测试环境中进行部署,同时去验证部署脚本中是否有遗漏和错误。当执行完部署脚本中删除临时文件的步骤后,小蔡发现后续步骤都不能执行了!经过调查发现原因是测试服务器已经被格式化了。

虽然测试服务器都是虚拟化的,可以很快在测试环境重新建立一台测试服务器,但是,如果这个Bug 出现在生产环境,那将会是非常大的灾难!

小蔡找到了刚才执行过程中出现问题的语句,是“rm -rf / tmp”。她仔细检查了整个语句,发现测试服务器被格式化的原因是在tmp前面多了一个空格,这个空格不仔细看还看不出来(业内也有同样的知名例子:Bumblebee误删用户文件夹,如图1-20所示,在最后一行的/usr /lib…语句中在usr后就被多写了一个空格)。

image

不过在Linux系统中,即使输入了灾难性的操作语句,但如果没有管理员的权限也是无法执行的,因为在执行这条语句的时候,只会出现权限不足,无法操作的提示, 不会把服务器整个删除。如图1-21所示,执行删除语句的用户由于没有管理员权限而被拒绝执行了。

image

所以小蔡下一步需要在脚本中找出是哪里赋予了管理员权限,导致后来删除语句被允许执行的。再仔细查找之前的部署脚本,果然不出所料,之前有一个操作步骤需要用管理员权限来复制几个不同的文件到管理员文件夹。通常做此类操作时,会只针对这条语句赋予权限,例如使用sudo命令的这条语句:“sudo cp xxx.zip /var/xxx/xxx/”,但开发人员在这里为了简化脚本的书写,把每一句最开始的sudo转换成单独的一条“su – root”,这种改变造成之后执行的所有语句都被赋予管理员权限进行执行,最终导致格式化测试服务器的命令也被执行了。

小蔡把这一发现告诉了开发人员后,开发人员修改了两处代码:一是删除“su –root”命令,改为针对每次执行需要特定权限的语句时单独添加sudo的方式,确保脚本执行的权限是正确的;第二是删除了导致测试服务器被格式化的那个空格。

image

相关文章
|
1月前
|
存储 资源调度 应用服务中间件
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
27 0
|
1月前
|
网络协议 Shell 网络安全
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
164 0
|
1月前
|
前端开发 应用服务中间件 nginx
使用Docker快速搭建Web服务器Nginx
本文指导如何使用Docker快速搭建Nginx服务器。首先,通过`docker pull`命令获取Nginx镜像,然后以容器形式运行Nginx并映射端口。通过挂载目录实现本地文件与容器共享,便于自定义网页。使用`docker ps`检查运行状态,访问IP:8088确认部署成功。最后,介绍了停止、删除Nginx容器的命令,强调Docker简化了服务器部署和管理。
50 0
|
4天前
|
XML Web App开发 测试技术
python的Web自动化测试
【4月更文挑战第16天】Python在Web自动化测试中广泛应用,借助Selenium(支持多浏览器交互)、BeautifulSoup(解析HTML/XML)、Requests(发送HTTP请求)和Unittest(测试框架)等工具。测试步骤包括环境搭建、编写测试用例、初始化浏览器、访问页面、操作元素、验证结果、关闭浏览器及运行报告。注意浏览器兼容性、动态内容处理和错误处理。这些组合能提升测试效率和质量。
11 6
|
1月前
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
7 0
|
1月前
|
安全 测试技术 API
请描述在 Python WEB 开发中常用的测试方法。
请描述在 Python WEB 开发中常用的测试方法。
18 0
|
1月前
|
弹性计算 分布式计算 DataWorks
DataWorks报错问题之ecs自建数据库连通性测试报错如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
1月前
|
Web App开发 前端开发 测试技术
Web应用程序测试工具Selenium用法详解
Web应用程序测试工具Selenium用法详解
37 0
|
1月前
|
Windows
Windows Server 各版本搭建 Web 服务器实现访问本地 Web 网站(03~19)
Windows Server 各版本搭建 Web 服务器实现访问本地 Web 网站(03~19)
57 2
|
1月前
|
机器学习/深度学习 Python
Python基础:构建一个简单的Web服务器
Python基础:构建一个简单的Web服务器
57 1

热门文章

最新文章