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

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

我最近才开始使用 Ubuntu 14.04。不知怎么的,我更改了文件权限/etc/sudoers。因此,每次我使用 sudo 运行任何命令时,都会出现以下错误:

sudo: unable to stat /etc/sudoers: No such file or directory
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

我能够以用户身份登录并改回权限。所以现在当我运行ls -l /etc/sudoers命令时,我得到:

-r--r----- 1 root root 755 жов 14  2016 /etc/sudoers

但我无法让 root 成为所有者。当我尝试使用 sudo 时,仍然会遇到相同的错误。

我读过很多关于这个问题的可怕报道。你能帮我解决这个问题吗?我会非常感激你的建议。

答案1

捷径:

dpkg-重新配置: 如果文件权限有问题/etc/sudoers,请以 root 权限运行:dpkg-reconfigure sudo。类似这样的操作pkexec dpkg-reconfigure sudo应该可以完成工作。

视觉:如果dpkg-reconfigure不适合您,那么只需运行pkexec visudosudoers文件将在编辑器中打开,然后只需保存并关闭文件,visudo将为您修复权限。

毕竟,如果您sudoers.d也更改了目录权限,那么请运行:

pkexec chmod 755 /etc/sudoers.d

如果文件存在,并且它们的权限也正确,但您仍然收到此错误消息,那么我想到的唯一可能性就是您破坏了其他权限并且sudo无权访问/etc/sudoers。最有可能的猜测是的权限/etc/

因此运行:

pkexec chmod 755 /etc

我们已经完成了,但是如果您想要一个详细的说明来恢复损坏或删除的sudoers具有混乱权限的文件,请继续关注,我们将使用另一种方法来修复问题。


介绍

我弄乱了我的/etc/sudoers文件,结果出现了和你类似的错误。我的情况非常接近,所以我完全删除了我的文件,结果它和你的一模一样。

我为解决这个问题做了什么:

我的 root 帐户已被锁定,并且没有任何密码,所以我无法做我想做的事情。但是,如果您的 root 帐户处于活动状态并且有密码,请切换到 root 用户并su -跳过此部分。如果没有,请按照说明进行操作。

在进一步讨论之前,我必须提到,您始终可以使用活动磁盘chroot进入系统,关于使用活动磁盘进行 chroot 的说明很多,所以我不会再费心给出所有这些说明,相反,我将假设我们没有任何活动磁盘,我们将使用已有的磁盘来解决这个问题。如果您愿意这样cheroot做,那也可以。


获取root访问权限

  • 重新启动系统
  • 当 grub 出现时按e编辑它
  • 在以 linux 开头的行末尾添加init=/bin/bash
  • CTRL+X

现在你将进入具有 root 访问权限的 bash shell。首先重新挂载具有写访问权限的文件系统:

mount -o remount,rw /

然后解锁root用户并设置密码:

passwd -u root
passwd root

现在如果您的/etc/sudoers仍然存在/etc,请将其移到其他地方:

mv /etc/sudoers /etc/sudoers.broken

因为我们要告诉我们的包管理器这个文件丢失了,它会用一个正确的文件来替换它,所以它不应该在那里。

我们快完成了,重启系统。以普通用户身份登录,打开终端,然后尝试su -切换到 root 用户。我无法做到这一点,所以我所做的是使用CTRL+ ALT+ F1,进入tty1,然后我使用我们刚刚设置的新密码以 root 身份登录。


恢复 sudoers

我们只需重新安装该sudo软件包,但重新安装并不能恢复这个文件,我们应该告诉它dpkg修复丢失的配置文件,如下所示:

apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall sudo

请记住,它会询问您是否安装该/etc/sudoers文件,如果选择y“是”,则表示安装成功。

如果此方法无效,请以 root 身份执行以下操作:

mkdir /root/tmp
cd /root/tmp
apt-get download sudo
dpkg-deb -x sudo*.deb .
cp etc/sudoers /etc/sudoers
cd /root
rm -r tmp

现在权限之间可能存在一些不同,运行dpkg-reconfigure sudo以修复它。如果它不起作用,请visudo以 root 用户身份运行,sudoers文件将在编辑器中打开,然后只需保存并关闭文件,visudo将为您修复权限。

如果一切顺利,您的 sudoers 文件将恢复,您将能够像以前一样使用 sudo。

答案2

发生这种情况的另一种难以捉摸的方式是,如果您更改了...的权限/应该是755(通过检查ls -d /)。

相关内容