执行sudo提示必须root才能执行此命令

故障现象

普通用户使用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的密码,因此需要通过进入单用户模式解决此问题。

  1. 重启Linux系统主机并出现引导界面时,按下键盘上的e键进入内核编辑界面


    进入内核编辑界面
  2. linux16这行的ro改写成rw后面添加enforcing=0 init=/bin/bash,然后按下Ctrl + X组合键来运行修改过的内核程序。
    image.png
  3. 等待数秒即可进入单用户模式,通过用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]: 

你可能感兴趣的:(执行sudo提示必须root才能执行此命令)