我无法再访问 root 帐户:用户不在 sudoers 文件中

Jak*_*ake 4 root sudo system-recovery

不小心删除了我的 gnome 桌面并卡在了 tty1 中。尝试重新安装桌面并不断收到错误“用户不在 sudoers 文件中”。添加我的用户时遇到问题,debian 新手,我不确定如何从 tty1 正确打开/编辑 sudoers(或者真的如何从 cmd 行编辑文件,如果有人可以借出一些细节)!

Jos*_* R. 7

要编辑sudoers文件,您首先需要是 root。我的猜测,从这个问题,是你没有为你的安装启用 root 访问,对吗?

如果是这种情况,您需要更改它:

  1. 从引导加载程序提示中,导航到您从中引导的常规条目。
  2. 而不是按Enterpresse首先编辑内核命令行参数
  3. 在打开的编辑器中,使用箭头键查找以 开头的行linux,转到其末尾并附加到该行init=/bin/sh。这将用您的init系统 shell 临时替换您的系统,因为它init是由 root 启动的,所以这将是一个 root shell。
  4. CTRL+X启动修改后的条目
  5. 一旦你有了一个 root shell,你通常需要重新挂载 root 文件系统读/写而不是只读。输入命令mount -o remount,rw /来做到这一点。
  6. 您可以通过输入 root 的密码来启用 root 访问:passwd为此使用命令。
  7. 通常您使用文本模式编辑器(如vimemacs )在文本模式下编辑文件,Debian 默认不提供这两种编辑器。Debian的是什么默认船舶的轻量级版本vimvim.tiny
  8. sudoers文件的特殊情况下,您应该使用编辑它,visudo因为它在写入文件之前会为您进行语法检查。如果您按照此过程启用 root 帐户,则不需要将您的常规用户添加到sudoers文件中。
  9. 启用 root 访问权限后,reboot可以正常启动(第 3 步中的编辑是临时的,在重新启动时消失)。遇到 时tty1,您可以以 root 身份登录(使用您在步骤 6 中创建的密码)并重新安装桌面。

笔记

正如@jthill 在下面的评论中所指出的,您可以选择完全不启用 root 访问权限并授予您的常规用户 sudo (这可以说更安全)。在这种情况下,passwd您应该使用:

usermod -aG regular_user_name sudo
Run Code Online (Sandbox Code Playgroud)

这可能仅适用于 Debian(及其衍生产品),因为它具有以下条目:

%sudo ALL = (ALL) ALL
Run Code Online (Sandbox Code Playgroud)

这基本上授予sudo组的所有成员不受限制的 sudo 访问权限。usermod上面的命令旨在将您的普通用户添加到sudo组中。对于其他发行版,不保证上述行的存在。例如,一些发行版使用一个称为wheel而不是sudo为此目的的组。