更正“用户名不在Sudoers文件中”。该事件是在Debian上报道的

本文介绍如何“修复” sudo在Linux上不起作用。尝试使用它,“您的用户名不在sudoers文件中。将报告此事件。” Debian(以及基于Ubuntu和Debian的Linux发行版)。使用sudo,系统管理员可以以root(管理员)或其他用户身份执行命令。

新的Debian 10(10.1)安装示例,其中sudo不起作用:

$ sudo apt update
[sudo] password for logix:
logix is not in the sudoers file.  This incident will be reported.

默认情况下,sudo在全新的Debian安装中不起作用,因为用户名不会自动添加到sudo组(默认情况下在Ubuntu上有效)。但是,如果您创建了一个新用户并忘记将其添加到sudo组中,或者系统上的另一个用户已从sudo组中删除了用户名,则也可能会看到此消息。
要检查当前登录的用户是否属于sudo组, groups 命令如果 groups 命令不返回 sudo 在基于Debian的Linux发行版上,该用户名无法使用sudo执行命令。不属于sudo组的Debian用户的示例输出:

$ groups
logix cdrom floppy audio dip video pugdev netdev scanner lpadmin

解决方案是将该用户添加到sudo组。但是,您不能将用户更改或添加为普通用户,那么如何获得路线?使用方法 su - (或 sudo su -),将用户添加到sudo组。
因此,要获得root并将用户添加到sudo组,请使用:

su -
usermod -aG sudo YOUR_USERNAME
exit

其中:

  • su 切换到root用户, - 运行登录外壳 /etc/profile.bashrc被执行。(这样,命令是 usermod 成为 $PATH您不需要输入可执行文件的完整路径。也可以使用 sudo su - 代替 su -
  • 需要更换 YOUR_USERNAME 使用用户名添加到sudo组。
  • 二手的 usermode 它应该可以在Linux发行版上使用,因此可以将组添加到现有用户。 adduseruseradd 您也可以使用此(adduser USERNAME -G sudo但是,它可能不适用于所有Linux发行版。本文适用于Debian,但我也想在其他Linux发行版中使用它( adduser 例如,它在Solus OS上不起作用。
  • exit 由于存在root shell,因此您可以以普通用户身份再次运行该命令。

在此之后,sudo仍然无法工作!您必须注销该用户并再次登录,才能使用sudo。
这解决了在Debian机器上“用户名不在sudoers文件中。将报告此问题”的问题,但在某些情况下可能会导致其他问题。例如,最小的Debian安装就是这种情况。在这种情况下,当我尝试使用sudo执行命令时,出现以下错误:

$ sudo apt update
bash: sudo: command not found

在这种情况下,请按以下步骤在Debian上安装sudo。

su - #or 'sudo su -'
apt install sudo
exit

您可能喜欢一些与Debian相关的文章:

  • 如何使用Apt将软件包降级到Debian,Ubuntu或Linux Mint上的特定版本
  • 如何查看Debian,Ubuntu或Linux Mint上已安装,已升级或已删除软件包的历史记录 [dpkg]
  • 如何列出Ubuntu,Debian或Linux Mint存储库中的所有软件包 [APT]
  • 如何查找在Ubuntu,Debian或Linux Mint上提供文件(无论是否安装)的软件包
Sidebar