前言
今天下面一个小兄弟使用Ubuntu安装vmware时不小心把sudo的所属组和权限给弄没了, 在网上找了各种办法还是会报错,下面提供一下解决方案。
解决方法
1.参考网上的解决方案,第一步先进入(recovery)单人模式
-
重启电脑按住shift不放进入grub
-
选择高级选项
-
然后选择 recovery mode 选项进入单人模式
-
然后选择 root 弹出press Enter for maintenance 直接按回车即可直接进入root模式
2.执行修改 /usr/bin/sudo文件的指定所属组和所属人
# chown root:root /usr/bin/sudo
# chmod 4755 /usr/bin/sudo
踩坑
一般按照上面的方法走一遍基本都能解决了,但是我们这边遇到一个坑,我们这边重启后执行sudo的时候提示: /usr/lib/sudo/sudoers.so 必须属于用户 ID 0 (的用户)。
网上的兄弟们估计大都是复制粘贴的,遇到这个问题大家的方法都是说卸载 sudo重装 ,看起来没有问题 ,但是实际上是行不通的,第一单人模式可能是无法联网的,卸载后能否安装不得而知,我这边也不敢尝试。第二就算重启系统后再重装,执行apt-get 是需要sudo权限的,恩这边执行sudo是有问题的。那不是死循环了??经过一番思索,无意间发现 /usr/lib/sudo/sudoers.so 必须属于用户 ID 0 (的用户) 和 /usr/bin/sudo必须属于用户ID 0(的用户) 不就是同一个问题嘛? 那为什么不用之前的方法再处理一遍试试看?
最后解决方案,重新计入单人模式,然后执行修改/usr/lib/sudo/sudoers.so 的管理组和所属人,还有权限即可。本人亲测,无需重装sudo。
# chown root:root /usr/lib/sudo/sudoers.so
# chmod 4755 /usr/lib/sudo/sudoers.so