近日,公司新部署一台开发服务器,经过一番折腾后发现sudo命令出错:
sudo: /usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位
了解原因是某虾米部署软件时需要将一个文件夹移入到/usr/bin目录没有权限,使用了命令:
sudo chmod -R 777 /usr/bin/导致。
线上查找了处理方案,比较靠谱的说法是用root权限对文件夹权限修复:
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
但ubuntu20的版本是没有固定的root密码的,在sudo异常的情况下,也不能用命令sudo passwd root修改root的密码。
查找了各种大神讲解,合适的做法是进入到ubuntu的安全模式,然后修改引导文件的配置。
我们用的是二手的DELL R730XD服务器,开机后一直点按的方式触发ESC和SHIFT键(也不知道哪个是对的),在看到BIOS启动界面是看到顶部有这个界面时按F12
随后我是一直保持左右手点按触发ESC和SHIFT键,然后进入到ubuntu的启动菜单,选择第二个高级选项
系统继续启动,在引导配置页面选中第二项后,在键盘输入e,进入启动配置文件编辑界面
进入系统后就类似于VIM的编辑界面,但退出时需要按CTRL+X或F10保存。
先来看里面配置文件的修改,在配置中找到“载入初始化内存盘”的前一行,将
ro ***********及后面的内容(不同版本可能内容不一样,见下图的位置)全部替换为:
rw init=/bin/bash
#我试过其他的做法,按rw single init=/bin/bash保存后不成功,去掉single反而成功了。
按CTRL+X或F10保存后系统继续引导,停下来后就是root的权限命令行,
执行对/usr/bin的目录权限修复指令:
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
修复后,进入/usr/bin,以sudo命令创建一个目录,成功!
reboot。。。。。
重启自然进入系统,切换到命令行后执行sudo命令,不再报错。
系统目录权限恢复。
文章来源地址https://www.toymoban.com/news/detail-444038.html文章来源:https://www.toymoban.com/news/detail-444038.html
到了这里,关于ubuntu报错sudo: /usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!