用户名不在sudoers文件中。此事件将被报告


85

我正在使用VMware Player在笔记本电脑上运行Ubuntu 12.04。我不确定为什么,但是除了我通常登录使用Ubuntu的帐户外,我还有一个名为“用户帐户”的帐户。好吧,这只是一个旁注,但基本上我要做的就是在Ubuntu上安装ncurses库。我尝试使用以下命令行安装ncurses:

sudo apt-get install libncurses5-dev
sudo apt-get install ncurses-dev

当我尝试使用上述命令两次安装ncurses时,在终端中收到以下提示:

[sudo] password for username

输入密码时,我收到以下消息:

username is not in the sudoers file. This incident will be reported.

到目前为止,我已经尝试按照此链接上的说明启用root用户(“超级用户”)帐户:https : //help.ubuntu.com/community/RootSudo

以下是该链接建议执行的操作:

允许其他用户运行sudo。在命令行中键入以下内容:

sudo adduser用户名sudo

要么

sudo adduser用户名sudo

以另一个用户身份登录。在命令行中键入以下内容:

sudo -i -u用户名

启用根帐户。在命令行中键入以下内容:

须藤-i

要么

须藤passwd根

我已经尝试了所有上述命令行,并在输入每个命令后提示输入密码。输入密码后,收到与尝试安装ncurses相同的消息:

fsolano is not in the sudoers file. This incident will be reported.

我还没有发表评论。问题。fsolano是您安装ubuntu的第一个用户吗?通常应该具有管理员权限,如果您以图形方式执行管理员功能,那么它是否对您有用?IE,如果您打开GUi进行用户管理,并尝试执行一些管理工作,是否可行?或告诉您您不是根

这里也问了同样的问题吗? superuser.com/questions/866582/...
shubham

如果您具有设置密码的root用户,则可以使用root登录su并将urself添加到sudo组,àdduser username sudo否则,您必须使用live cd / usb和chroot引导至已安装的系统,默认情况下它将登录到root ,为以后的情况设置一个root密码passwd,然后从那里添加到sudo,然后重新启动,您将把用户名添加到sudo,并且还将拥有root密码,以防sudo仍然无法正常工作,您可以处理它....
乔纳2015年

Answers:


57

当这发生在我身上时,我所要做的只是解决:

步骤1.打开一个终端窗口, 在我的系统上为CTRL+ ALT+ T(设置为热键后的Debian KDE)

步骤2.使用命令输入root su root

步骤3.输入root密码

步骤4.输入apt-get install sudo -y要安装的命令sudo

步骤5.通过输入adduser username将用户添加到sudoers文件,将您的用户名替换为username

步骤6.通过输入为sudoers文件设置正确的权限 chmod 0440 /etc/sudoers

步骤7.键入exit并单击Enter直到关闭终端窗口。完全关闭系统,然后重新启动。

步骤8.打开另一个终端窗口。

步骤9.尝试使用任何sudo命令检查您的用户名是否正确添加到sudoers文件中。我用过sudo echo "Hello World!"。如果您的用户名已正确添加到sudoers列表中,那么您将获得Hello World!终端响应!


15
-1:cd -转到主目录,而转到最近的其他目录。sudo -不会询问您的用户密码,但对你的root密码。千万不能编辑/etc/sudoers手动使用visudo了点。典型的ubuntu系统根本没有root密码,但完全依赖sudo。
michas'Apr 1'16

@michas在Debian中没有sudo不能使用visudo。vi解决方案也是不可能的,因为它是只读的。Gedit以我为例。
莱奥列奥波尔德赫兹준 영

在debian 8中,您可以在没有sudo的情况下使用vi作为root。要写入只读文件,请使用:wq!
甲骨文

这也对我有用,确实有很大的帮助!
Arefe

感谢您的回答。但是我什至无法跑步su -
Vishal

42

按照链接重置您的管理员密码[听起来像您将您的管理员用户帐户命名为'user':)]

https://askubuntu.com/questions/24006/how-do-i-reset-a-lost-administrative-password

之后,以管理员用户身份登录并执行以下操作。

sudo usermod -aG sudo,adm fsolano

现在您可以以“ fsolano”身份登录,并且应该能够运行sudo命令。


1
抱歉,我忘了提到我很久以前解决了这个问题。这是我所遇到的问题,也可能是其他任何人所遇到的问题的解决方案。
fsolano94

3
键入以及后,我仍然收到消息adduser NAME sudo。我认为还必须有别的东西。我正在使用Debian 7.8。
托马什Zato

这在Debian 8.5中还不够。ShrikantKhawale的建议很少补充就是正确的。
莱奥波德·赫兹(LéoLéopoldHertz)2016年

3
@masi上面的技巧的确存在于Debian 8.5(至少在这里)的工作,但只有你注销并重新之后。
jcoppens

@jcoppens是正确的,仅在登出并登录后才适用于Debian 8.6
hello_earth '16

13

配置文件/etc/sudoers列表,允许谁以哪个用户身份运行哪些命令。

在ubuntu上,此文件包含一行,允许该sudo组的所有用户以该用户身份运行命令root

要检查哪些用户在sudo组中,可以键入getent group sudo。您还可以通过键入来检查当前用户的组id

您当前的用户可能不在sudo组中,因此不允许使用该sudo命令。

如果要运行,请以启用了sudo的用户身份登录sudo


好,就是这样。我将以管理员或root用户身份登录,但是第一次在计算机上安装Ubuntu时忘记了密码。
fsolano94

sudo:x:27:user(我不确定x或27是什么,但我肯定用户是我不知道/忘记密码的用户帐户)
fsolano94

@ fsolano94,启动到某种形式的应急环境(直接启动,或从安装媒体启动),然后更改root密码。或编辑/etc/sudoers文件(最好使用visudo(1))。
vonbrand

6

每当我想通过输入以下命令将newuser添加到sudo组时,Kali都会遇到相同的问题:

usermod -aG sudo newuser

并在中编辑右侧部分/etc/sudoers。废话!

我对这种废话的解决方法是复制下面的root行并将root更改为newuser:

# User privilege specification
root    ALL=(ALL:ALL) ALL

newuser ALL=(ALL:ALL) ALL

我记得曾经使用过usermod的通常方法可以工作,但是现在这是最近几年的错误吗?真是胡说八道 无论如何,如果有人有更好的答案,请分享:)


在常规debian上也有同样的问题(9); 手动编辑/etc/sudoers的伎俩
佐伊的transgirl

4

执行此操作以重置管理员用户的密码。

https://help.ubuntu.com/community/LostPassword

然后,您将可以通过以下方式向常规用户授予sudo权限:

sudo adduser username sudo

如您在原始问题中发布的那样。

顺便说一句:为什么要安装ncurses?你在编译东西吗?


我正在用C语言编写《俄罗斯方块》,正在使用curses作为图形用户界面的跨平台。是的,我将遵循链接
fsolano94

1

您还可以通过以下方式将用户添加到sudo组以进行所有访问:

  1. 通过sudo su(ubuntu 16.04 LTS)转到您的根目录用户
  2. 然后输入您当前的用户密码
  3. 键入sudo adduser <username> sudo其中username是要在sudoers列表中添加的用户的名称
  4. 为了检查是否成功添加了所需的用户,请键入getent group sudo,以显示sudo用户列表

嗨,欢迎来到Unix SE并恭喜您获得了一个很好的第一答案。我对您的格式进行了一些固定,您可以在撰写文章时单击“语法帮助”以了解更多信息。
GnP

1
不是一个好答案。(1)问题指出sudo对用户不起作用。(2)答案sudo adduser <username> sudo已经给出。
G-Man

0

如果除“ fsolano”以外,您还有其他root / admin用户,那么该文件不在sudoers文件中。将报告此事件:

check sudo enabled users (groups)
# getent group sudo 
sudo:x:27:xyz,abc 

由于用户“ fsolano”已更改为标准用户,并且如果您具有任何其他root特权用户,请通过root根用户登录,然后使用“用户帐户”将“ fsolano”更改为管理员。



-1

1.您可以使用以下命令检查您是否属于sudo组

groups username ===> it will lists the groups for which he belongs too

我们也可以通过下面的脚本检查

h=`groups username| awk -F ":" '{print $2}'| grep -io 'sudo'`
if [[ $h == "sudo" ]]
then
echo "user praveen is part of group sudo"
else
echo "Need to add user to group sudo"
echo "Swictch to root and add user"
fi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.