今天遇到的问题,服务器版本是 ubuntu9.04  我发神经去改了 /etc/passwd 文件里的用户UID

一改了以后,sudo就出错了:

sudo: uid 1000 does not exist in the passwd file!
who are you?

结果啥事也不能做,别的用户又没有sudo的权限。试过PHP木马,找过这个系统版本的BUG下载 full-nelson.c 并编译想提权至ROOT都未成功。

最后只能请机房解决。操作步骤如下:
----------------------------------------------------------------

1.  按电源键关机,等待正常关机后重新开机。
2.  开机时按ESC键,在引导菜单中光标移至第二项【ubuntu 9.04 , kernel 2.6.28-11 server (recovery mode) 】回车。
3.  在recovery menu 中,选择最后一项【root Drop to root shell prompt】后回车。
4.  执行命令
       mount -o remount,rw /
       sed -i "s#1876#1000#g" /etc/passwd  (这命令是把UID改回来,如果要改密码这里的命令就是 passwd 您的用户名 然后输入新密码,要是你连自己用户名都不记得,可以ls /home 看看)
5. 最后按Ctrl+Alt+Del 三键重启服务器。

----------------------------------------------------------------

我在操作到第3步时遇到错误 Give root password for maintenance (or type Control-D to continue)

解 决办法是第2步时按 e 键进入编辑模式,选择kernel 那行再次按e 键,将ro single替换为rw single init=/bin/bash后回车确认,按 b 键引导boot。这样就不会报Give root password for maintenance错误了。

机器是用 lilo 来引导的话,这么改 boot: linux init=/bin/bash

 

PS:此方法适于所有LINUX的机器,所以取了这么个标题。

原文转自:http://www.phpv.net/html/1715.html

版权声明:若无特殊注明,本文皆为( yueshuo )原创,转载请保留文章出处。