![Sudo 错误,setuid](https://linux22.com/image/1121372/Sudo%20%E9%94%99%E8%AF%AF%EF%BC%8Csetuid%20.png)
我使用的是 Ubuntu 14.04,我在终端上运行了一些命令。但有一次我运行
sudo chmod 777 /usr/bin/ -R
并授予此目录的一些权限。之后,我继续工作,并收到此消息:
sudo: /usr/bin/sudo, owned by 0 users identity and should be setuid bit set
我是 Ubuntu 新手,我该怎么办?
答案1
您需要先获得 的 root 写入权限/usr/bin/
。您需要恢复模式,甚至需要 Live CD/USB。本文介绍了这两种方法— 只需忽略密码设置位。
此时您应该已经以 root 身份登录。
无论如何修复它不是也很难,因为大多数文件都是 755,只有少数例外。所以我们首先将其中的所有内容设置为 755,然后纠正例外。这是基于我的文件系统,所以我可能有一些你不知道的东西,但在chmod
不存在的文件上运行应该不会有什么坏处。
chmod 755 /usr/bin/*
chmod 4755 /usr/bin/{{lp,g,}passwd,chfn,mtr,beep,traceroute6.iputils,pkexec,sudo,newgrp,ksu,chsh}
chmod 6755 /usr/bin/{X,at}
chmod 2755 /usr/bin/{mail-{un,touch,}lock,ssh-agent,mutt_dotlock,chage,bsd-write,wall,screen,crontab,mlocate,expiry,dotlockfile}
chmod 0755 /usr/bin/
此语法是精确的。您需要确保输入正确,否则可能会造成更大的损坏。
您可能会说手动复制和粘贴太多了。您可能是对的。我们可以处理最重要的事情,然后重新启动回到图形桌面,使用以下命令完成其余操作sudo
:
chmod 755 /usr/bin/*
chmod 4755 /usr/bin/{sudo,pkexec}
chmod 2755 /usr/bin/crontab
chmod 6755 /usr/bin/X
chmod 0755 /usr/bin/
对于那些好奇如何生成此类列表的人来说,这里有命令:
find /usr/bin -type f ! -perm 755 -printf '%m %P\n'
它确实只查看文件,但我发现的所有链接都链接回/usr/bin/
文件,所以它们已经被处理了。
答案2
目前,该错误尚无解决方案,因为 ubuntu Linux 操作系统中没有 root 用户,我想说的是,该问题无法解决,“您需要 root 访问权限才能授予权限”,“通过 sudo 获得 ubuntu root 访问权限”,“sudo 已损坏”,所以当 sudo 不起作用时,您无法解决它,“su”命令需要 root 用户,当您尝试使用 live CD/USB 授予 /usr/bin 文件夹 755 权限时,您需要 root 访问权限,当您使用“ $ sudo ”时,它将使用我们正在尝试解决的 sudo,对于这个
问题,只有 1 个解决方案,这就是我们正在尝试修复的问题。
您可以通过“重新安装”ubuntu 的启动 CD/USB 来解决此问题,然后在安装类型中选择更新 ubuntu,然后继续安装。
如果你问为什么 Ubuntu 没有设置 root 用户,那是为了安全,这使得 Ubuntu 比一些 Linux 操作系统更安全,如果你问为什么 root 用户不安全?
答案是:如果有人知道你的 root 密码并且 ssh 端口已打开,他会制造比我们遇到的更大的问题