'用户名'不在sudoers文件中.将报告此事件

Dan*_*man 4 linux sudoers

登录ssh后,收到此消息:

'用户名'不在sudoers文件中.将报告此事件.

我该如何解决这个问题?我正在将ssh连接到我的虚拟专用服务器.

san*_*eti 13

打开文件

sudo nano /etc/sudoers
Run Code Online (Sandbox Code Playgroud)

然后在admin用户下添加用户,如下面的语法.

user_name ALL=(ALL)  ALL
Run Code Online (Sandbox Code Playgroud)

  • 这只是文件最顶部的注释所明确的内容:“## 此文件必须以 root 身份使用 'visudo' 命令进行编辑。”` (6认同)
  • 推荐的方法是使用 `visudo` 来避免同时编辑(在这种情况下可能不是问题,但仍然......) (4认同)
  • 这有什么意义?问题是用户不能使用sudo,那么部分解决方案如何使用sudo? (2认同)
  • 我不喜欢这个答案。它应该解释更多,这应该通过 root 用户完成,但他留下的信息让人们感到困惑。 (2认同)

wsc*_*rge 11

在上述文件的顶部/etc/sudoers有一条信息:

"## This file MUST be edited with the 'visudo' command as root."
Run Code Online (Sandbox Code Playgroud)

按照我们的指示执行操作,请使用:

$ su
> Enter root password: *******
$ visudo -f /etc/sudoers
Run Code Online (Sandbox Code Playgroud)

找到文件的以下部分/etc/sudoers并添加您的用户权限:

# User privilege specification
root    ALL=(ALL:ALL) ALL
user_name ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

保存文件(如果 vim 是默认文本编辑器,请按esc并键入,对于 nano press ,然后键入)。:xctrl+oenterctrl+x

键入exit以关闭rootshell,并享受sudo与您的username


Vik*_*lin 8

您应该使用visudo编辑 /etc/sudoers 文件。

赶紧跑 sudo visudo -f /etc/sudoers

并使用正确的语法和访问权限添加您的用户名。您可以在以下位置找到更多内容man sudoers


COR*_*ian 7

  1. 使用命令输入 Root $ su root。输入根密码

  2. 安装须藤:$ apt-get install sudo -y

  3. 添加您的<用户名>$ adduser <username> sudo

  4. $ exit

  5. 然后注册并登录<用户名>会话

  6. 最后,检查:< username>@< hostname>:~$ sudo apt-get update


Son*_*al 7

对于初学者来说,这是一个非常常见的错误。发生错误是因为我们试图从用户而不是 root 用户访问/更新具有超级权限的内容。

因此,为了解决这个问题,我们需要在授予 root 用户权限的 sudoers 文件中进行更改。所以,切换到root用户,运行以下命令

sudo su 
# vi /etc/sudoers
Run Code Online (Sandbox Code Playgroud)

编辑器将打开文件,现在向下滚动到底部,您将看到一行

#User privilege specification

root     ALL=(ALL:ALL) ALL

username ALL=(ALL:ALL) ALL
Run Code Online (Sandbox Code Playgroud)

如您所见,我刚刚添加了具有所有权限的用户名。

保存文件,然后退出。切换回用户并轻松开始使用 sudo 命令。


Oli*_*ona 6

如果您在系统上找不到 visudo

whereis visudo
Run Code Online (Sandbox Code Playgroud)

启动这个工具

./PATH/visudo
Run Code Online (Sandbox Code Playgroud)

在下面添加这一行

用户权限规范

user_name ALL=(ALL)  ALL
Run Code Online (Sandbox Code Playgroud)

保存更改即可!


小智 5

以上两个答案就他们而言都是正确的,但是在基于debian的系统(Ubuntu,kbuntu,debian等)中将用户添加到sudo组和在基于RedHat的系统(RedHat,Fedora,CentOS)下的wheel组更加容易。等)

usermod -a -G sudo user
or
usermod -a -G wheel user 
Run Code Online (Sandbox Code Playgroud)

  • 它会触发“权限被拒绝”问题。 (5认同)
  • 在 [Contabo](https://contabo.com/) 上无法在我的 Ubuntu 22.04 上运行 (4认同)
  • @Mahesh 用户的进程树可能需要重新启动。 (4认同)
  • 确实如此。将 OpenSuse 包含在第二组下。在我的例子中,我颠倒了顺序,在将我的用户添加到“wheel”之前修改“sudoers”并最终到达这里。 (2认同)
  • 这种方式好多了,因为您不需要编辑任何关键文件来进行此操作。 (2认同)
  • usermod:未找到命令。 (2认同)
  • @konsolebox是的,它在我注销然后以用户身份登录后起作用 (2认同)

Rob*_*air 5

我的主机与 Rodney 的语法略有不同

usermod -aG wheel username
Run Code Online (Sandbox Code Playgroud)

他们的解释是

用户将需要添加到轮组。

使用 usermod 命令将用户添加到 wheel 组。

执行此操作后,您可能需要注销并重新登录

  • 应用此解决方案后,我只需要注销并重新登录即可。 (2认同)
  • 如果我的用户已经属于wheel组,但我仍然收到“'用户名'不在sudoers文件中。此事件将被报告。”怎么办? (2认同)