突然间,当我通过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(耐寒)
任何想法或帮助将不胜感激!
你能跑吗?
原文链接:https://www.f2er.com/ubuntu/348188.htmlsudo -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
您还应该发布输出
getent passwd root
这里更大的问题是这种情况是如何发生的.
这台机器是否提供任何网络服务?如果是这样,有人可能已经闯入并接管了它.在这种情况下,您应该备份数据,进行干净的重新安装,并审核返回的数据.
如果它更像是一台个人机器,那么最近是否会有一个知识渊博的恶作剧者可以访问它?
编辑:您对另一个答案的评论表明这是一个服务器.我强烈建议尽快脱机并对其磁盘进行成像以用于取证.除非你能在短时间内确定一个良性原因,否则你可能已经破解了服务器.