sudo: unable to stat /etc/sudoers: 没有那个文件或目录

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

我正在 Ubuntu 14.04 上使用 apache2 设置我的第一台服务器并安装了 phpMyAdmin,

我试图 运行 /etc/phpmyadmin/ 中的 phpMyAdmin 文件,但没有权限

我使用 sudo chmod 777 -R /etc/ 授予自己对 运行 文件的权限。当我去重启apatche2

我收到错误

sudo: /etc/sudoers is world writable sudo: no valid sudoers sources found, quitting sudo: unable to initialise policy plug-in

我试过了pkexec chmod 0440 /etc/sudoers

但这给了我错误

sudo: unable to stat /etc/sudoers: No such file or directory sudo: no valid sudoers sources found, quitting sudo: unable to initialise policy plug-in

现在我什至无法访问 etc 文件夹,我收到消息:

You do not have the permissions necessary to view the contents of “etc”.

当我打开终端时,我得到:bash: /etc/bash.bashrc: Permission denied

Google 没有发现任何可以解决问题的方法,我不想弄乱权限,以免让情况变得更糟。

提前致谢。

我不想听起来很粗鲁,但是作为一个拥有 20 多年 运行 unix 服务器经验的人来说,在使用 sudo 成为这个骑士之前,您可能需要了解更多关于系统的知识。正如您在此处看到的,使用 sudo 或其他根访问方法很容易让您自己头疼(或者更糟,完全破坏系统)。

在我继续我的回答之前有两条建议:

  1. 每当使用 sudo 时,停下来想想结果会是什么。如果您不太确定自己知道它是什么,也许您不应该 运行 命令。

  2. chmod 777(或666)几乎从来都不是正确的做法。每当这是您要尝试的解决方案时,重新考虑问题并先尝试其他方法都是一个危险信号。它几乎总是错误的答案,并且经常具有破坏性的副作用或安全隐患。

也就是说,您已经处于这种情况。此时,您不能再使用 sudo,因为它没有通过自己的安全检查。不幸的是,sudo 是解决这个问题的最简单方法。

我能想到的只有几件事你现在可以做。

首先,如果您可以某种方式以 root 身份登录,只需这样做,修复 sudoers 文件的权限,sudo 将再次工作。

如果您无法以 root 用户身份登录,另一种可能是尝试将您的文件系统挂载到另一个 unix 系统上,然后手动修复权限,卸载文件系统,然后启动备份您的原始环境。如何解决取决于您的系统,无论是 VM 还是物理系统……这是一个更大的话题,所以我不会尝试。

当然,您总是有第三种选择,即擦除系统并重新安装并重新开始。如果您的系统是新的并且还没有完成大量工作,那么这也许是一个合理的选择。不过,这是一个需要你回答的问题...

注意: 通过任何方法,如果您设法修复权限以便 sudo 再次工作,那只是修复的开始。您使 /etc 目录下的所有内容 可由任何用户或进程读取和写入。如果您发现其他软件或服务抱怨这一点,我不会感到惊讶,清理它会有点混乱。我无法告诉您修复它需要做的所有事情,但我要做的第一件事是:

# fix the /etc/shadow file where authentication lives
sudo chmod 0640 /etc/shadow

祝你好运...您可能还想在 https://askubuntu.com/

寻求帮助