学习linux的时候,访问一些文件或执行一些操作:例如拷贝文件。需要输入sudo密码,为了不执行这个操作,可以执行一下配置:

$ sudoedit /etc/sudoers 进入文件后,修改 %XXX ALL=(ALL) ALL 为 %XXX ALL=(ALL) NOPASSWD:ALL,其中XXX是用户名。不建议这样做,因为会无意间改变受sudo保护的文件。

    由于没有经常这样做,无意间把这个功能的实现,记成了对/etc/passwd的修改,一个巨大的悲剧。

    我的错误操作如下:sudo进入/etc/passwd, 在passwd中的项中,把我的用户名后面的主目录和shell部分全部屏蔽掉了,然后保存退出vim。之后我再次执行sudo命令,系统就提示 I have no name@ ,原因是我把passwd中我的用户名信息中的关键两项屏蔽了。再也进不去了。于是重启,更大麻烦出现了,登陆不了系统,用户名uid已经不存在!!!

    解决办法:启动系统进入grub引导界面。高亮系统启动项的时候,按 e 进入编辑界面,修改下面的项目:

linux   /boot/vmlinuz-2.6.32-21-generic root=UUID=99a490b5-1a10-43d5-b61c-4bd3c020d37a ro   quiet splash vga=normal nomodeset

    把quiet splash 去掉,ro改为rw init=/bin/bash ,其他部分不变。ctrl+x启动,成功进入bash字符界面,成功修改/etc/passwd,重启后成功进入系统。问题解决,不需要重新安装系统,吼吼。

 

Logo

更多推荐