IT 界的有一个老梗,一次某论坛的数据库管理员抱怨自己老板一直虐待他,结果他一气之下就删库跑路了……
于是…
据新华社北京 8 月 20 日电 ,北京一软件工程师徐某离职后因公司未能如期结清工资,便利用其在所设计的网站中安插的后门文件将网站源代码全部删除。记者 20 日从北京市丰台区人民法院获悉,徐某破坏计算机信息系统罪成立,获刑五年。
我在服务器维护的时候不小心执行了 rm -rf
命令……现在整台服务器被我删光了肿么办???
好吧,现在先来介绍一下 rm
。
rm -rf 的威力
rm
是 linux 系统下删除文件的命令,-r
代表删除这个下面的一切,一切的一切那种的一切。f
表示不需要用户确认,直接执行。
通常这个命令都是指定文件夹用的,比如
1 | rm -rf /home/test/ |
就是删除 /home/test/ 这个文件夹下面的所有东西。
但是如果后面的文件夹路径没有加对,
rm -rf /
在服务器上也就意味着…
俗话说的好:常在河边走, 哪能不湿鞋。 那该怎么避免这种悲剧的发生呢?
如何避免再次跑路?
一个方案就是重定向 rm
命令以嫁接为 mv
命令, 相当于给 Linux 系统定制了一个回收站。
实现方式如下:
1 | ### 重定义rm命令 ### |
最后将上述脚本写入 /etc/bashrc
,并立即执行命令 source /etc/bashrc
即刻生效。
使用
这个脚本定义了几个命令:
rl
:查看回收站下的文件unrm 文件名或目录
:恢复到当前的路径下rmtrash
:清空回收站,不过会友好提示。
执行 rm 不会真正删除,而是使用 mv 移动到我们指定的回收站。
实在真的想删除可以 /bin/rm
来进行删除。
另外,需要注意的时,之前 rm
指令的一些参数可能不再使用,因为 rm
现在其实是 mv
了。
1 | # touch hoxistest |
效果看着应该还可以吧。
例行总结
看着是还可以,但是也有一些问题,比如删除文件不能重名,若重名了会提示你是否进行覆盖。那就需要再进行特殊处理了,比如删除时加个时间戳什么的,有兴趣的动手实现下吧。