Ubuntu sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位
昨天一个同事不小心把自己ubuntu16.04系统的根目录"/" 的权限给改了,执行了chmod 777 -R /
命令导致自己的sudo命令执行报错“sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位”,然后子的root用户密码也忘记,然后帮忙一起看了一下。
首先我们想到是把修改的权限改过来,但是现在没法执行sudo,也没法进入root用户,那我们就进入recovery模式(即单人模式)去修改吧
1.进入recovery模式(即单人模式)
- 重启的时候,进入ubuntu高级选项 “”Advanced options for ubuntu”,从上到下选中后面带有(recovery mode),按e进入,找到linux /boot/vmlinuz 开头这句话。然后把 “ro recovery nomodeset 。。。”改为 “rw single init=/bin/bash”,按CTRL+x,
2.修改root密码
sudo passwd
#输入两遍密码
#修改成功
3.修改权限
chmod 4755 /usr/bin/sudo
chmod 755 /usr
chmod 644 /usr/lib/sudo/sudoers.so
chown -R root:root /usr/lib/sudo
chmod 0440 /etc/sudoers
4.修改完后按“Ctrl + Alt + Del”重启