sudo:无法统计/ etc / sudoers:没有这样的文件或目录-文件存在


12

我是管理游戏服务器的少数人之一。该服务器当前正在运行Ubuntu 14.04,仅在3周前安装了该服务器。

直到几天前,一切都运行良好,我们遇到了一些问题。我怀疑有人入侵了我们的SSH服务器并设法严重破坏了某些东西。

当我尝试执行命令时sudo,出现以下错误:

sudo: unable to stat /etc/sudoers: No such file or directory

因此,首先想到的是文件已删除,只需要重新创建即可,但是ls /etc/表明sudoers文件已经存在。此外,当使用nano(我的首选编辑器)进行编辑时,很明显该文件是完整无缺的,并且格式正确。

ls -l还显示sudoers文件具有-r--r----用户root和组root 的权限,根据研究,这应该完全足以使sudo能够读取该文件,以确保我暂时将文件指定-rwxrwx---为root root(在会话中使用tmux控制,我们已经以root用户身份建立了会话),但仍然失败。

因此该文件存在,其中的内容正确,具有正确的权限。还有什么可能。我看了一下在askubuntu.com上遇到类似问题的人,我发现听起来很希望的一种解决方案是备份sudoers文件,然后使用: apt-get purge sudo apt-get install sudo

然后用旧的替换新的sudo文件。不幸的是,这没有奏效。为了进一步排除sudoers文件没有错误,我再次尝试了解决方案,并尝试仅sudo使用新创建的sudoers文件执行该操作,并得到了相同的错误。

--------编辑--------

对于对所谓的不存在的sudoers文件包含的内容感兴趣的任何人,这里是根据请求过滤的版本(过滤的用户名):http : //paste.ubuntu.com/7781967/


1
使用paste.ubuntu.com可以发布sudoers文件的内容(您可能希望删除用户名以提高安全性-如果您的服务器确实遭到黑客入侵,请更改密码)
Wilf 2014年

密码已被更改。这不是问题的一部分。帖子已通过paste.ubuntu.com链接进行了更新。
D3_JMultiply

1
根据sudoers的手册页,井号('#')用于表示注释(除非它是#include指令的一部分,或者除非它出现在用户名的上下文中并且后跟一个或多个数字),否则在这种情况下,它将被视为uid)。在您的sudoers文件中,includedir指令中缺少#。尝试添加#,然后看看sudo命令是否有效。
Lety

不。那没有解决问题。就像我在OP中所说的那样,我重命名了sudoers文件并重新安装了sudo,从而创建了新安装的sudoers文件版本。而且该文件也不起作用。我知道问题不在于文件本身的内容。无论如何,谢谢:)
D3_JMultiply 2014年

Answers:


9

好。我已经解决了我的问题。就像我想的那样,这不是文件。


直到10分钟前,我才注意到sudo无法正常工作。由于我的大部分工作都在tmux中进行,所以我从未注意到我的用户帐户。

首次登录时,我将收到以下错误:

-bash: /etc/profile Permission denied

它将使我成为:I have no name@<ipaddress>作为我的帐户。

因此,我对此问题进行了一些研究,发现比其他问题更多的结果。如此处所示,其中包括一个最适合我的情况的结果

问题是我的/ etc /文件夹缺少该组的执行权限。因此执行:chmod g+x /etc注销并重新登录后解决了该问题。


谢谢

感谢您在评论中提供的帮助,您提供的建议仍然很有价值,可以进一步缩小问题的范围。最后,它看起来似乎要简单得多。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.