具有 Sudo 权限的用户权限被拒绝

具有 Sudo 权限的用户权限被拒绝

当我通过 sudo 以 root 身份发出命令时,突然遇到权限问题。

我可以使用正常权限在我的主目录中创建文件,因此类似这样的操作可以工作,例如:

vi /home/mike/test.txt

但使用 sudo 运行的等效命令不起作用:

sudo vi /home/mike/test.txt
"test.txt" E212: Can't open file for writing

这只是一个例子,所有使用 sudo 的命令都会因权限原因而失败。

我假设因为我可以使用正常权限进行写入,所以这不是文件系统只读的问题。它也不限于文件写入,像“sudo visudo”这样的命令也会因权限原因而失败。我不知道服务器最近是否有任何更改会导致这种情况(“sudo”在运行了大约 8 个月后一直为该用户正常工作)。硬重启并没有解决这个问题。

服务器是:Ubuntu 8.04.2 LTS (hardy)

任何想法或帮助都将不胜感激!

答案1

你能跑吗

sudo -s
id

然后发布输出?我想看看它是否真的让你成为了你认为的用户。

另外,尝试

sudo cat /etc/sudoers

此处 id 的输出非常有启发性。运行 时sudo -s,你被赋予了 UID 1,而内核唯一能识别为具有 root 权限的 UID 是 UID 0。

尝试运行

getent passwd | grep ':0:'

并查看是否有任何条目在其第一个数字字段 UID 中包含 0。无论哪个帐户都是系统上的真正超级用户,而是root一个假的。一旦您知道了名称,您就可以尝试

sudo -s -u username

以该用户身份获取 shell。

您还应该发布输出

getent passwd root

这里更大的问题是这种情况是如何发生的。

这台机器是否提供任何网络服务?如果是,有人可能已经闯入并接管了它。在这种情况下,您可能应该备份数据,重新安装,并审核其上发生的一切。

如果它更像是一台个人机器,那么最近是否有一位知识渊博的恶作剧者使用过它?

编辑:您对另一个答案的评论表明这是一台服务器。我强烈建议尽快将其脱机并对其磁盘进行映像以用于取证目的。除非您能尽快确定导致这种情况的良性原因,否则您的服务器可能已被破解。

答案2

我想知道 /home 目录是否是 NFS 挂载。在这种情况下,root 用户具有“其他”类别的权限,因为它在 NFS 挂载上的权限是用户 nobody/nobody 而不是 root 用户的权限。

答案3

你还能使用以下命令成为 root 吗

sudo su -

那么,

cd /home/mike
vi test.txt

工作?

答案4

  • /home 或 /home/mike 是否与“/”挂载为同一个分区?
  • 你也可以发布来自lsattr /home/mike/test.txt命令 ?

相关内容