[root@node1 sudoers.d]# su - student
[student@node1 ~]$ sudo whoami
sudo ls /root
-bash: /usr/bin/sudo: Permission denied
-bash: /usr/bin/sudo: Permission denied
问题很明确了!在 node1
上,/usr/bin/sudo
二进制文件的权限有问题,导致所有用户都无法使用 sudo。
解决方案:
方案 1:修复 sudo 二进制文件权限
在 node1
上以 root 用户执行:
# 检查当前权限
ls -la /usr/bin/sudo
# 修复权限(关键步骤)
chmod 4755 /usr/bin/sudo
# 验证修复后的权限
ls -la /usr/bin/sudo
# 应该显示:-rwsr-xr-x
方案 2:如果方案 1 不行,重新安装 sudo
# 对于 CentOS/RHEL
yum reinstall sudo -y
# 或者
dnf reinstall sudo -y
# 对于 Ubuntu/Debian
apt-get install --reinstall sudo -y
方案 3:检查文件系统属性
# 检查是否有特殊属性阻止执行
lsattr /usr/bin/sudo
# 如果有特殊属性,移除它们
chattr -a -i /usr/bin/sudo
验证修复:
修复权限后,测试 sudo 是否正常工作:
# 切换到 student 用户测试
su - student
sudo whoami
# 应该输出:root
sudo ls /root
# 应该能列出 /root 目录内容
预防措施:
为了避免类似问题,可以检查:
# 检查其他关键文件的权限
ls -la /bin/su
ls -la /usr/bin/passwd
# 这些文件都应该有 setuid 位(s 标志)
请立即执行方案 1,这应该能解决您的问题。如果 chmod 4755 /usr/bin/sudo
命令执行成功,那么 sudo 权限问题就应该解决了。