Linux篇:从rm -rf 引发的脚本安全闲聊(set 命令)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux篇:从rm -rf 引发的脚本安全闲聊(set 命令)相关的知识,希望对你有一定的参考价值。

参考技术A 上周刚经历了一个“删库跑路”的惨重事件,不知哪位无邪的童鞋把Confluence 的数据存储目录 /var 清空了,结果群众的怒火燃烧上了天空

这次结合自己的一些思考来记录一些有关脚本安全的点

先来看一个简单的案例

在用户主目录下创建safe目录及相关文件用于测试演示

假如写一段脚本删除safe目录下所有文件:

这段是不是看起来没有问题,但如果由于有些大心脏的同学粗心,写成下面这样

最终,脚本都变成了rm   -rf    *   ,可怕至极

其实在shell脚本当中,为了防止这种现象,我们可以借助set 命令来实现相关控制

关于set 命令有较多参数,这里介绍最常用的几个

我们以刚才图4那段有问题的脚本说事

为保证不错删东西 ,我们加一个set -u 选项 ,判断变量是否存在

我们执行一下,看看效果

看,报错啦,dir这个变量没有声明,ls 查看一下文件,发现都还存在

set -e  与set -u 通常搭配在一起使用

一个是遇到错误退出,一个是发现空变量报错

这两个搭配在一起放在脚本里可以防止一些变量为空导致文件全被清空的问题

拓展一下:

如果只想应用在脚本的某一段中,那么

开始段落前加set -e 表示范围开始

结束段落后加 set +e 表示范围结束

set -x 与set + x同理。

1、删文件其实不用rm -rf ,不是受迫性需要,不要使用rm -rf 

2、修改、删除系统文件或其他重要的东西,先备份一份

3、非特殊需要,不建议在root下操作,普通用户即可

4、脚本加上set -e 与set -u保证安全

Kali Linux基础操作学习篇——rm命令

课前声明:
1、本分享仅做学习交流,请自觉遵守法律法规!
2、搜索:Kali 与编程,学习更多网络***干货!
3、Kali 与编程每天准时更新,敬请学习和关注!
正文部分
一、课程背景
相较通过图形界面执行计算机命令,使用命令行模式执行相应操作,能够更好地节约计算机资源,迅速提升计算机运行效力。Kali Linux命令如同中文的拼音,英文的单词,虽然学习过程可能繁杂枯燥,但它是一切学习的基础,是决定最终学习高度的基石。无论今后是否进入计算机领域工作,熟练掌握Linux相关命令,都将有助于提升您的工作效率、工资薪金。

二、课前准备
操作机的VMware虚拟机中,Kali Linux程序安装完毕。
三、课程目标
1.通过学习本课程,能够熟练掌握并使用rmdir命令。
2.通过学习本课程,能够熟练掌握并使用rm命令。

四、课程内容
1.rmdir命令的作用
英文为:remove directory,只能用于空目录的删除。

2.rm命令的作用
英文为:remove,用于删除文件或者目录。

3.rmdir命令语法详解
命令行:rmdir [选项] [目录名]
其中:①[选项] 参数:
?-p 是当子目录被删除后使上一级目录成为空目录的话,则一并删除。

4.rm命令语法详解
命令行:rm [选项] [目录名]
其中:①[选项] 参数:
?-i 删除前逐一进行删除确认。
?-f 强制删除,即使原档案属性设为唯读也可以直接删除,无需进行确认。
?-r 将目录及目录中的文件一并删除。
?-d 只删除空目录。

5.命令使用实例
?删除tmp目录下的usa空目录。(使用rmdir命令)
命令行:rmdir /usa
运行结果:
技术图片

PS:需注意,rmdir只能删除空目录,如当前目录不为空,则无法删除。如:使用“rmdir /china”命令行删除/china目录,我们已知/china目录中存在/shenzhen目录,则运行结果:
技术图片

?删除tmp目录下的usa空目录。(使用rm命令)
命令行:rm -d /usa
运行结果:
技术图片

?删除非空目录korea及其下属所含所有文件。
命令行:rm -r /korea
运行结果:技术图片

强制删除非空目录china及其下属所含所有文件。
命令行:rm -rf /china
运行结果:
技术图片
小编一个个字敲打创作,可辛苦了,问君可否关注一下我呢?你还可搜索:Kali与编程,学习更多******技巧呢 !拒绝盗版,转载请声明来源:Kali与编程
点我学习更多Kali Linux***测试与网络***实战技巧!

以上是关于Linux篇:从rm -rf 引发的脚本安全闲聊(set 命令)的主要内容,如果未能解决你的问题,请参考以下文章

linux服务器被SSH暴力破解引发的安全加固计划之打流氓脚本

Linux下防止rm误操作建立回收站

从 GCS 中删除文件:“gsutil -m rm”引发 CommandException:无法删除文件/对象

linux系统安全审计脚本

Linux命令篇之mkdir命令,rmdir命令和rm命令

Kali Linux基础操作学习篇——rm命令