passwd被误清的奇遇遭遇
几乎所有的linux入门书籍里都有这样一句警世哲言:在对服务器进行日常管理的时候建议使用普通的帐号;只有当确实需要使用root权限操作的时候,才切换到root用户.于是芸芸众生的我辈谨记前人的教诲,以普通的帐号管理服务器.但是,但是,我们还年轻嘛,总是耐不住会尝试一些新鲜的东东,于是乎也便有了本文:) 一日同事说:我正在用一个普通帐号登陆服务器用vi编辑passwd的文件,改的东西挺多,我不想退出vi了,应该咋操作来着?我不加思索的回了句:":!sudo tee %".我本身就用的ubuntu的桌面,也相当于普通帐号,于是我也迅速的打开一个shell试了下这个命令.有句话怎么说来着?好奇心杀死猫!估计就是说的我吧.输完命令以后,要输入当前用户的密码,而输入完密码以后是空白,敲了几个回车以后发现不对,赶紧ctrl c,这时已经被无情的提示:"当前文件被修改,是否载入". 输入:L,然后无情的发现,文件已经被清空啦! 脑子一下了就炸了!oh,my god,passwd文件清空了会怎么样呢?这时同事回话说:"试了,passwd文件被清空了.我是在远程操作托管的机器.".我赶紧回了句:"冷静!先别退出shell,我在想办法.".脑子迅速进入了高速旋转阶段,怎么办,怎么办,怎么办.我还记得07年的时候,有一次总监在远程操作的时候,不小心输了一个:"rm -rf /",等了几秒钟,发现不对,赶紧停了下来,然后比对删除的文件,从另一个配置差不多的机器上,拷过来的.小心的检查了所有配置文件,然后又重启了一下以验证配置对不对.于是,我第一想法就是从其它机器上拷备一个passwd文件过来.可是奇迹发生了.oh,my lady gaga!看来没了passwd文件还真不行,我直接被缴械了!咋办呢?还好我还开着一个shell远程连着一台机器.赶紧把那台机器的passwd文件cat一下,然后复制出来,但是还是无法直接保存到/etc/passwd.于是我决定重启进救援模式.结果发现竟然连重启都不让, 拥有帝国一切,皆有可能。欢迎访问phome.net 谁让我就坐在电脑前呢,直接按电源呗! 这时候直接进系统,已经进不了了,不断的报错. 我想进系统自带的救援模式,但是设的启动时间太短了,老是抢不过去,想想就算进那个模式也没用,没passwd文件估计也不让登陆,还是直接用光盘吧. 光盘启动选择救援模式,直接选择使用的系统,一路顺畅!切到/etc下,查看passwd文件,果然空了. 不过还有一个passwd-的文件存在,看下文件大小及内容,和原来没清空时差不多,那就好办了,直接删除passwd文件,将passwd-改名为passwd.ok!reboot 启动成功!我胡汉三又回来啦,哈哈~~ 但是发现一个问题,这时候的机器名还是"I have no name",why呢?网上查资料说是passwd文件权限不对,于是看了一下, 发现确实不对,这样的话,登陆shell的时候,普通用户没权限读自己的用户名?不管了,纠正权限,重启!终于一切正常了~~ 这件事已经过去几个月了,前几日翻资料的时候不小心翻看了ubuntu的官方wiki,里面有一段关于rm /etc/passwd的描述:
看到这个资料才有了这次的passwd误删情景再现,但是重启恢复passwd的文件的时候我看了/var/backups文件夹,里面竟是空的. 而在看到这篇资料的时候,我有看过本机的/var/backups,里面是有东东的,passwd和passwd.bak文件的内容是一样的! 拥有帝国一切,皆有可能。欢迎访问phome.net 也许我的再现场景太早了,刚安装完系统不久,还没有到ubuntu所谓的"周期".无论如何,这次知道怎么在不同的情况下恢复passwd文件了吧:)顺便说下,那个不退出vi就以特权权限保存文件的vi命令是:":w !sudo tee %".一定要记清楚了哟~ 拥有帝国一切,皆有可能。欢迎访问phome.net |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |