#+TITLE: 可怕的e命令 #+AUTHOR: lujun9972 #+TAGS: 异闻录 #+DATE: [2020-04-02 四 20:07] #+LANGUAGE: zh-CN #+STARTUP: inlineimages #+OPTIONS: H:6 num:nil toc:t \n:nil ::t |:t ^:nil -:nil f:t *:t <:nil * 故障 监控告警某系统业务成功率突然下降了一半,在排查应用日志后发现有一台机一直提示打开文件失败,经过与正常机器对比,发现有一个文件目录消失了。 而使用history查看操作历史并未发现有任何人做删除操作。 * 原因 通过KVM历史回顾,发现故障产生的时候,有个同事运行了一个很奇怪的命令 =e=. 与该同事进行沟通,该同事反映它当时只是想执行 =exit= 操作,但可能中途不小心按到了回车符,所以就变成了执行命令 =e=. 该同事发现运行了错误的程序后随即关闭了终端窗口。 经过复盘,我们发现在AIX上 =e= 命令运行的是一个 =INTERACTIVE TEN/PLUS File Manager=, 其会打开一个双面板的界面,其中左边列出了当前目录下的所有文件(和目录),像下面这样 [[file:images/e1.PNG]] 随后输入的任何字母都会 *立即* 修改光标所在的文件名(输入的字母会插在文件名前面). 所以当那个同事输入后面的 =xit= 时,实际上已经把光标所在的文件名给改了,像下面这样: [[file:images/e2.PNG]] 随后运行 =ls -ld xit*= 果然看到被修改的文件名 * 解决办法 为了防止再出现类似的情况,最好是卸载该命令。 =e= 是 =bos.INed= 中的命令,然而由于不能确定还有哪些应用依赖于该包,所以还是不敢直接卸载该包。 最后只能临时取消 =e= 命令的执行权限 #+begin_src shell chmod -x /usr/bin/e #+end_src