我是管理游戏服务器的少数人之一。服务器当前运行 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 进行会话control 并且我们已经以 root 身份启动了一个会话),但仍然失败。
所以文件存在,里面的内容是正确的,它有适当的权限。还能是什么。我在 askubuntu.com 上看了一些遇到类似问题的人,我发现一个听起来很有希望的解决方案是备份 sudoers 文件,然后使用:
apt-get purge sudo
apt-get install sudo
然后用旧的替换新的 sudo 文件。不幸的是,这不起作用。为了进一步排除 sudoers 文件没有错误,我再次尝试解决方案,并尝试仅sudo
使用新创建的 sudoers 文件执行,并得到相同的错误。
- - - - 编辑 - - - -
对于任何对所谓的不存在的 sudoers 文件包含的内容感兴趣的人,这里是一个过滤版本(过滤用户名):http : //paste.ubuntu.com/7781967/
好的。我已经解决了我的问题。就像我想的那样,这不是文件。
直到 10 分钟前,我才注意到 sudo 不起作用。由于我的大部分工作都在 tmux 中进行,因此我从未注意到我的用户帐户。
第一次登录时,我会收到以下错误:
-bash: /etc/profile Permission denied
它会让我:I have no name@<ipaddress>
作为我的帐户。
所以我对这个问题做了一些研究,发现了比另一个问题更多的结果。其中一个结果,这是我的情况是绝配,因为发现了这里。
问题是我的 /etc/ 文件夹缺少对组的执行权限。所以执行:chmod g+x /etc
在注销并重新登录后修复了问题。
感谢您在评论中的帮助,您提供的建议仍然很有价值,并有助于进一步缩小问题的范围。最后,它比看起来要简单得多。