sudo 错误,是模式 0777,应该是 0440

use*_*698 26 sudo

我收到 sudo 错误,我该如何解决这个错误?

sudo: /etc/sudoers is mode 0777, should be 0440
sudo: no valid sudoers sources found, quitting 
Run Code Online (Sandbox Code Playgroud)

Ale*_*ens 26

第一个选项

这篇文章之后

  1. 重启电脑
  2. 当 GRUB 引导选择屏幕显示时,选择恢复模式。(如果它没有出现,Shift当你看到 GRUB 加载器在底部时按键)。
  3. 应该会出现一个黑色终端,此时你可以运行这个命令(你应该有 root 权限):

    chmod 0440 /etc/sudoers
    
    Run Code Online (Sandbox Code Playgroud)

或者

您必须将 Ubuntu 放到 LiveCD 上,启动到 LiveCD,将您的 Ubuntu 分区挂载到硬盘驱动器上(打开文件浏览器,如 Nautilus,然后单击您的 Ubuntu 分区;或单击位置->"xxGB 分区/您的 Ubuntu 分区”)。

然后,在 LiveCD 会话中打开一个终端并键入以下两个命令:

cd /media/<name of permanent ubuntu partition>/etc
sudo chmod 0440 sudoers
Run Code Online (Sandbox Code Playgroud)

额外问题

如果有任何错误(如下所示),请按照错误提示并使用上述两个步骤之一相应地调整每个文件:

sudo apt-get update sudo: /etc/sudoers.d/README 是模式 0777,应该是 0440 sudo: /var/lib/sudo 非所有者可写 (040777),应该是模式 0700 [sudo]

通过以下方式修复:

chmod 0440 /etc/sudoers.d/README
chmod 0700 /var/lib/sudo
Run Code Online (Sandbox Code Playgroud)

这两个命令都应该与上面概述的步骤正确使用。他们将更改与该文件关联的文件权限。0440 将授予所有者 (root) 和组读取权限,0700 将授予所有者 (root) 读取、写入和执行权限。

  • @Seppo:不,只有文件的所有者才能更改文件权限。 (2认同)

Eli*_*gan 16

sudo在这种情况下已损坏,但pkexecPolicyKit的命令行前端)仍然有效,因此您可以使用单个命令修复它。无需重新启动。

pkexec chmod 0440 /etc/sudoers
Run Code Online (Sandbox Code Playgroud)

这假设已安装 PolicyKit。如果这是桌面系统(而不是没有 GUI 的服务器),那就是。