无法使用 sudo 命令(Ubuntu 16.04.1 LTS)

无法使用 sudo 命令(Ubuntu 16.04.1 LTS)

当我在终端上输入 sudo 时,我得到:

sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

更多信息:

ls -ld / /etc /etc/sudoers
drwxr-xr-x  24 root root  4096 Dez 21 22:44 /
drw-rw-r-x 162 root root 12288 Jan 18 15:13 /etc
-r--r-----   1 root root   746 Jan 18 14:21 /etc/sudoers

pkexec visudo

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d

答案1

运行pkexec chmod 755 /etc来修复这个问题。

作为steeldriver 建议,此错误是因为/etc权限错误。显示的权限来自ls -ld /etc 应该看起来像:

drwxr-xr-x

但你的看起来像:

drw-rw-r-x

这阻止了sudo遍历/etc访问/etc/sudoers

仅尝试检索文件上的元数据(即统计)时出现的“权限被拒绝”错误消息几乎总是意味着文件丢失或无法遍历指向该文件的目录,而当您运行ls该文件时,它会显示存在。

/etc我已经通过破坏权限(在虚拟机上)对此进行了测试chmod ug-x,并且能够生成与您完全相同的错误消息。(您不应该继续chmod下去ug-x——这就是我故意打破了权限,而不是如何修复它们。)

修复权限/etc,授予用户和组所有者可执行权限。缺少这些权限是导致此问题的原因。此外,默认情况下/etc不需要授予组所有者写入权限,因此除非您知道如果你想这样做,我建议也把那个改回来。

此命令将重置/etc为默认权限:

pkexec chmod 755 /etc

这应该对你有用,因为你能够以 root 身份运行其他命令pkexec。通过搜索找到此问题的其他用户通常能够以相同的方式修复它,但对于没有pkexec(或pkexec无法工作)的系统,可能需要启动到恢复模式或从实时 CD/DVD/USB 来修复权限。但其实不需要这么做。只需运行一个简单的命令,就sudo可以再次工作。

答案2

这可能会有帮助,因为这个方法对我有用

如果你无法通过以下方式打开文件,

sudo vi /etc/sudoers

首先,你应该提供上面 [Eliah][1] 给出的权限,并且,

pkexec chmod 755 /etc

然后尝试使用以下方式打开 sudoers 文件

pkexec vi /etc/sudoers

编辑更改,然后保存并退出。现在尝试 sudo 命令,

sudo apt update 

希望这可以帮助。

相关内容