为什么 whoami 总是返回“root”?

为什么 whoami 总是返回“root”?

黑客攻击后,专用服务器总是在执行whoami命令后返回“root”。即使在sudo su myUser>之后whoami返回“root”。

myUser存在于服务器上,因为关于这个问题 passwd myUser返回Changing password for myUser.

此外,在服务器上安装软件包时,权限始终设置为root:myUser

有哪些路径可以导致whoami始终返回“根”?

答案1

原因可能是whoami二进制文件是 setuid root。您可以使用 检查它stat $(which whoami)。在我的系统上它看起来像这样:

  File: /usr/bin/whoami
  Size: 30904           Blocks: 64         IO Block: 4096   regular file
Device: 1bh/27d Inode: 13918180    Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

如果启用了 setuid,则如下所示:

  File: /usr/bin/whoami
  Size: 30904           Blocks: 64         IO Block: 4096   regular file
Device: 1bh/27d Inode: 13918180    Links: 1
Access: (6755/-rwsr-sr-x)  Uid: (    0/    root)   Gid: (    0/    root)

该位的作用是二进制文件以其所有者的身份运行,而不是以启动它的用户的身份运行。

您可以通过运行禁用此设置sudo chmod -s $(which whoami)

(但是,是的,正如许多人已经在评论中写道的那样,您可能应该完全重新安装机器。)

相关内容