Ubuntu sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位
Posted 张志翔 ̮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位相关的知识,希望对你有一定的参考价值。
一、前言
这是一个神奇的错误,缘由是因为有人将/usr/bin/sudo的权限改为777或其他。
解决办法:最终目的只有一个,想办法执行
$ chmod 4755 /usr/bin/sudo
$ chmod 755 /usr
二、解决办法
1.如果知道root密码。
su登录root用户,执行命令
$ chmod 4755 /usr/bin/sudo
$ chmod 755 /usr
2.不知道root密码。
重启机器,ubuntu下按esc或shift,进入recovery模式(即单人模式),进入后选择root选项,有的会提示输入root密码。
(1)不需要输入root密码的情况下,执行如下两条命令
$ chmod 4755 /usr/bin/sudo
$ chmod 755 /usr
重启的时候,进入ubuntu高级选项(有的系统是英文的,自己翻译,大概是Advanced options for ubuntu这样),之后能看到recovery 啥啥啥的,按e进入,找到linux /boot/vmlinuz-----\\*** ro recovery nomodestset 这句话。
然后将ro recovery nomodestset啥啥啥一大串修改为 rw single init=/bin/bash,然后ctrl+x进入单人模式。
(此时,想要更改root密码的输入passwd <密码>,之后再确认一次就更改成功) 执行如下命令
$ chmod 755 /usr
$ chmod 4755 /usr/bin/sudo
然后重启查看。
三、题外
如果重启之后,提示sudo:在加载插件“sudoers_policy”时在 /etc/sudo.conf 第 0 行出错。
必须用root登录(如果不知道密码,用第2点第2条进行重置root密码),卸载sudo并重装就可以了。
ubuntu命令如下:apt-get remove sudo 执行apt-get install sudo。
以上是关于Ubuntu sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位的主要内容,如果未能解决你的问题,请参考以下文章
系统之家Ubuntu sudo报错command not found怎么办?怎么办
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set 的解决办法