如何将 sudoers 重命名回其原始命名?

Sur*_*lwe 12 sudo

今天我犯了一个大错误,我运行了命令

mv /etc/sudoers{,.bak}
Run Code Online (Sandbox Code Playgroud)

在我的 ubuntu 机器上,现在缺少 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
Run Code Online (Sandbox Code Playgroud)

如何使该备份文件再次恢复正常并恢复sudo

kos*_*kos 30

我认为解决此问题的最快方法是从恢复模式中获取 root shell 并将原始 shell 移/etc/sudoers回原位:

  1. 在开机时按住LSHIFT(或ESC如果LSHIFT不起作用)以启动grub
  2. 选择默认内核的恢复模式(例如Ubuntu, with Linux 3.19.0-15-generic (recovery mode))并点击Enter;
  3. 选择root - Drop to root shell prompt并点击Enter
  4. 运行mount -o rw,remount /;
  5. 运行mv /etc/sudoers.bak /etc/sudoers;
  6. 运行reboot;

  • 感谢您提供非常详细的帮助!!!!...现在我的日子会好起来的!!! (2认同)

小智 11

哦,我以前做过这个。:) 哎呀...

  1. 使用 LIVE CD(您安装 Ubuntu 的那个)重新启动

  2. 选择“Try Ubuntu”选项而不是“Install Ubuntu”选项。

    进入桌面后,只需安装主硬盘(应在左下角显示为硬盘)

  3. 启动文件管理器并导航到/etc/新安装的硬盘驱动器上的文件夹。

  4. sudoers.bak文件重命名为sudoers.

重新启动,你应该很高兴。如果这有帮助,请告诉我。

  • 这很好,+1,但是从 `grub` 获取 root shell 应该更快/更容易 (2认同)

mur*_*uru 11

由于 Ubuntu 也已pkexec安装,并且 Polkit 配置独立于sudoers

pkexec mv /etc/sudoers{.bak,}
Run Code Online (Sandbox Code Playgroud)

  • 啊,并不是像我给出的答案那样得到 +19 分是应得的,但是看到它甚至不是最好的答案也感觉有点不舒服。@SurajPalwe 我认为这应该是公认的答案,它比我的答案好得多。 (2认同)