Ubuntu sudo:must be setuid root,失手改了usr目录的权限,在机房的血泪恢复全记录

学向勤中得,萤窗万卷书。这篇文章主要讲述Ubuntu sudo:must be setuid root,失手改了usr目录的权限,在机房的血泪恢复全记录相关的知识,希望能为你提供帮助。

前言:失手给了用户账号 /usr 目录的权限,结果 sudo 的时候报 sudo:must be setuid root....,里面东西都部署好了,不想重装系统啊。遂,跑到机房一番挣扎,成功恢复。在恢复的过程中,发现很多的教程都只说了一部分,照着执行有很多坑。所以,试图用这篇讲解全部过程,并指出需要注意的地方。
一、进入Ubuntu Recovery模式
【Ubuntu sudo:must be setuid root,失手改了usr目录的权限,在机房的血泪恢复全记录】

Ubuntu sudo:must be setuid root,失手改了usr目录的权限,在机房的血泪恢复全记录

文章图片

其实就是在进入系统前,这个页面上选择 后面有 recovery mode项,进入恢复模式。
网上其他都说要按 Esc或者Shift,目的在于让开机过程停在这个页面,不然这个页面会一闪而过。
我实际操作 在bios之后,一直按住 Esc键。
进入后,会有图形页面,选择 root那一行即可。
之后还要敲一下 Enter键。
二、文件系统重新挂载为 RW ,默认只读,无法操作

mount -o remount rw /


执行下即可
三、恢复

chown root:root /usr/bin/sudo#所有者变为 root
chown -R root /usr

chmod 4755 usr/bin/sudo#赋权限
chmod755 /usr/lib/sudo/sesh
chmod644 /usr/lib/sudo/sudoers.so
chmod644 /usr/lib/sudo/sudo_noexec.so

reboot#重启


四、问题排查方法
如果还不行,无非两个问题: 所有者不是root,没有setuid项(执行权限s)

ls -l /usr/bin/sudo


正常结果如下:
Ubuntu sudo:must be setuid root,失手改了usr目录的权限,在机房的血泪恢复全记录

文章图片

注意几点:
  1. 所有者 root root
  2. 有 s 权限见-rwsr



    推荐阅读