当我在 EC2 实例上输入“sudo -i”时,出现以下错误:
sudo:必须是 setuid root
这意味着有人篡改了 sudo 权限。现在登录服务器并进行管理的唯一方法是通过“sudo -i”。有什么方法可以让我获得服务器的 root 访问权限?或者修复 sudo 二进制文件的 setuid 权限?
答案1
实际上我能够登录到服务器,我将服务器的分区挂载到另一台服务器,设置 suid 和适当的权限,允许 root 登录并且它起作用了。
答案2
这种情况很糟糕。如果没有其他人拥有 root 访问权限,而您又无法使用 su,那么情况就非常糟糕。我会尝试备份所有可以备份的内容,然后重新开始。
答案3
是的,尝试“su -”,您需要该文件上的 suid 标志。
[root@m-01 ~]# ls -l /usr/bin/sudo
---s--x--x. 2 root root 197536 Mar 23 19:55 /usr/bin/sudo
[root@m-01 ~]# ls -l /bin/su
-rwsr-xr-x. 1 root root 30092 Jan 5 21:37 /bin/su
您还需要在 / 文件系统上禁用 suid 标志。
[root@m-01 ~]# mount
/dev/xvda1 on / type ext4 (rw,noatime,grpquota,usrquota)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)