sudo和su都不能使用的问题
背景
我不知道脑子出啥问题了,我命令了:
1 | sudo chmod -R 777 /usr |
导致/usr/local/sudo
命令和/usr/local/su
命令都不能使用了。
看到网上的解决办法都是只有其中一种问题,例如:报错:
1 | sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set |
本来就应该su root
,然后
1 | chown root:root /usr/bin/sudo |
之后:
1 | chmod 4755 /usr/bin/sudo |
最后重启,完美解决。
可是我第一步就完蛋了,我运行:su root
时出现问题:
1 | su: Authentication failure |
查了之后说要执行sudo passwd root
给 root 设置密码。但是我不能用 sudo 啊。而且我是使用过 su 的,密码我也记得。
解决过程
根据报错:sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
:
sudo 的用户属组要属于 uid 0,即 root 用户;同时 sudo 要设置 setuid 位。我首先查询了一下我系统中 sudo 的信息:
1 | ls /usr/bin/sudo |
结果为:
1 | -rwxrwxrwx 1 root root 215944 Feb 14 2022 sudo* |
是 root 用户。
那么就要设置 setuid 位:
1 | chmod 4755 /usr/bin/sudo |
可是我没法用sudo
啊,这咋改啊。
没有办法了,只能进入恢复模式 recovery mode。
恢复模式
进入恢复模式:
选择 Advanced options for Ubuntu,按下[Enter]进入,选择 recovery mode,不要按下回车键。
按 E 进入到编辑界面,按向下键找到 到 linux /boot/vmlinuz-……. ro recovery nomodeset 所在行,将“ro recovery nomodeset”替换为“quiet splash rw init=/bin/bash”,按下[F10]或者[Ctrl+x]重启系统。
重启以后进入到这个页面,向下键选择 root 回车。
但是我还是糟糕啊,完蛋孩子。再尝试一会儿决定重装(删除虚拟机后新建)😭
长记性啊,可千万不能 chmod -R 777 啊
你以为我能解决啊,我也想解决啊 😅