昨天远程到办公室的archlinux上翻看sudo配置文件时,手抖把文件权限改成了0640,于是就出现了sudoers is mode 0640, should be 0440……本来用root账号改回来就可以,悲剧的是root密码忘记了,还错怪了小强同学。
出来混总是要还的,只好今天早上跑到办公室重启机子看看有啥办法了。
通常,linux下使用单用户模式启动能直接绕过root密码,不过archlinux默认启动环境insecure,当使用以下方式尝试无密码root登陆时:
1)启动到grub,按’e',找到行(一般在第二行)
kernel /boot/…… root=/dev/…… ro
再按’e',改成kernel /boot/…… root=/dev/…… ro single
然后按Enter。经过启动等待,于是如下语句基本上就出现了”give root password for maintenance(or type Control-D to continue)” ,这需要输入root密码,好吧,我也不知道密码。
2)操作类似1),将行修改成:
kernel /boot/…… root=/dev/…… ro init=/bin/bash
然后按Enter。如果运气好的话就能够看到:”kernel panic -not syncing: Attempted to kill init!”,接着就是系统挂在那边木有反应了。
其他linux发行版貌似默认不会遇到以上问题。我运气很好,以上两种情况都碰到了。没办法,只能使用Live CD了(我为啥不带U盘)。服务器上算进机箱和电源总共7个零部件,再加上一条网线和电源线。旁边找了个光驱,接上附近的一个显示器,幸好光驱能用,进入到终端
[Arch Linux: /]#
用fdisk查看了/的位置,然后把/挂载上去,于是我该干吗就干吗了……
如果要重设root密码,使用passwd就可以了(于是我忘记重设了,希望俱乐部staff永远不要用到root)。