故障现象
普通用户使用sudo命令,出现如下错误信息
[ennan@ennan ~]$ sudo yum install httpd -y
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
问题分析
当使用sudo时候,提示sudo必须为uid为0的(root)用户才能使用,并提示需要设置uid。推测可能时由于/usr/bin/sudo丢失了uid导致的。
解决思路
由于没有root的密码,因此需要通过进入单用户模式解决此问题。
-
重启Linux系统主机并出现引导界面时,按下键盘上的e键进入内核编辑界面
- 将linux16这行的ro改写成rw后面添加enforcing=0 init=/bin/bash,然后按下Ctrl + X组合键来运行修改过的内核程序。
- 等待数秒即可进入单用户模式,通过用ls -l命令可看出/usr/bin/sudo缺少suid权限。修正文件权限后,执行exec /sbin/init重新引导系统即可。
验证
在单用户模式修改后,可正常执行sudo命令
[ennan@ennan ~]$ sudo yum install httpd
[sudo] password for ennan:
......
......
Dependencies Resolved
======================================================================================================
Package Arch Version Repository Size
======================================================================================================
Installing:
httpd x86_64 2.4.6-89.el7.centos.1 updates 2.7 M
Installing for dependencies:
httpd-tools x86_64 2.4.6-89.el7.centos.1 updates 91 k
mailcap noarch 2.1.41-2.el7 base 31 k
Transaction Summary
======================================================================================================
Install 1 Package (+2 Dependent packages)
Total download size: 2.8 M
Installed size: 9.6 M
Is this ok [y/d/N]: