羊坊店linux服务器故障维护心得
作者:coolerfeng
今天接到秋香电话,让我下班后和他去羊坊店联通机房处理一台linux服务器故障。据该公司开发人员描述。无法远程登录,怀疑被黑了。
下班后7点就到了,可是我不知道联通机房在哪里,硬是在附近转了了半天,还是没找到,其间和秋香,守住电话N次,依然无结果。(我是那种一天黑就没方向感的人)最后总算找到了。
来到机房已经晚上8点了。进入机房得办手续,可是联通机房的值班人员要求我们提供证件。只有秋香有证件,因此我只能和另一个人在外面等候。大概10点左右秋香出来了。没等我问,秋香大哥就开始“盘问”那个陪同的开发人员。
故障判断流程,由于联通机房的显示器缺色,造成判断故障异常困难。(linux默认是彩色显示,缺色会导致目录和文件名无法显示,上次我曾一度怀疑硬盘出现故障,后也发现是显示器缺色)。
由于linux下对ls命令有别名通过alias可以看到
alias ls='ls --color=tty'
所以输入ls是用彩色来显示目录的,那么在这种垃圾显示器下怎么办呢,一种方案是换显示器,另一种方案修改成单色显示
unalias ls
如果在vim中也需要单色echo "syntax off" >; ~/.vimrc
或者在冒号提示符下输入syntax off也可以。
在控制台下试图登录:输入完密码后又自动跳回登录界面。只好重启进入单用户模式,然后修改用户密码,然后再重启,还是不能进入?怪事
单用户模式下查看/etc/passwd看不出异常。
root:x:0:0:root:/root:/bin/bash
如果后面不是/bin/bash而是/bin/false /bin/nologin的话就要改回来。
并且搜索一下,没有其他的0:0用户(0:0表示root权限)
检查/etc/security目录也无异常。检查/var/log/secure和/var/log/message文件。也没有可疑的信息。
到这里陷入了僵局,似乎找不出什么入侵的痕迹,而且入侵者不会笨到让自己也登录不了对吧。那么为什么呢?单用户下建立了一个普通用户,然后修改该用户为root用户
cooler:x:506:506::/home/cooler:/bin/bash
把506:506替换成0:0
cooler:x:0:0::/home/cooler:/bin/bash
这时候,cooler就成了root用户了
笔记本电脑连上网线ssh登录。然后查看/etc/passwd,这时终于发现了问题所在,原来该文件中每行都有^M特殊字符。
解决方案,删除^M字符dos2unix /etc/passwd
然后cat -n /etc/passwd看一下,没有^M了。注销再登录,这次ok了,原来的root用户的密码并没有被修改。
经过分析后确认事实基本如下(可能略有出入,但基本能肯定)。开发人员因为需要修改ftp用户的密码。(此处ftp采用系统用户验证方式)。将/etc/passwd文件从linux机器上远程下载到本地windows机器上。备份后用windows的编辑器打开,然后修改完后再上传到linux上覆盖原始文件。然后退出远程ssh后就再也连不上了
故障分析,windows下文件的换行符号和linux下不一致。文件经过windows下的编辑后增加了^M,造成在linux下系统无法正确识别/etc/passwd。
解决完毕出来已经10点了,匆匆忙忙吃了一点东西后就回家了。这该死的windows操作“坏”毛病。