为什么我突然不再是sudoer了?

fr0*_*1nd 15 root sudo

我今天启动了 Ubuntu 12.10,在尝试时sudo,我像往常一样输入了密码,但它说我不是 sudoer。所以我去用户帐户下检查我的帐户,出于某种原因,我现在是标准用户?

我已经尝试通过恢复模式将自己重新添加到管理员,但是没有用。

编辑: UserMod 命令将不起作用。得到错误:usermod: cannot lock /etc/passwd; 稍后再试。

编辑2:感谢所有帮助!您的支持是极大的赞赏!

Eli*_*gan 16

从 Ubuntu 12.04 开始,该sudo组将管理权力授予用户。该admin组也会,但前提是它存在,除非您从以前的版本升级或手动创建它,否则它不会。

  • 有关更多信息,请参阅“sudo”和“admin”组有什么区别?
  • 即使您确实从 12.04 之前的版本开始升级,如果导致此问题的事件是无意中删除admin组,那么尝试通过将自己添加到来解决此问题admin也会失败。

因此,您必须将自己添加到sudo组而不是admin组。为此,请以恢复模式启动并进入 root shell(如您之前所做的那样),然后运行:

usermod -a -G sudo username
Run Code Online (Sandbox Code Playgroud)

确保替换username为您的实际用户名。

然后,您将再次成为管理员。

(如果这不起作用或产生错误,请在此处发表评论以简要解释发生的情况,并编辑您的问题以添加尽可能多的关于发生的事情的信息。)

来源:如何为我的帐户授予管理员权限?

当那不起作用时

你得到了错误usermod: cannot lock /etc/passwd; try again later

usermod显然无法正确访问/etc/passwd(它必须修改的文件),即使在恢复模式下也是如此。

希望直接引导到 root shell而不通过恢复模式菜单会更好地工作。所以尝试“The Other Way Lucid”(但运行而不是像以前一样)。usermod -a -G sudo usernamepasswd username

如果这不起作用,您可以尝试Aditya 建议的 Oli 的解决方案,但有两个主要警告:

  1. 如果您对您的系统有足够的了解,那么您只能使用这些指令来change sdYY to your root partition满足它的要求(即,如果您知道根分区的设备名称)。

  2. 不要sudo adduser your-username admin像它说的那样跑;相反,运行adduser your-username sudo. (或usermod -a -G your-username。)

    重要的是您将自己添加到sudo而不是admin.

    (随意跳过这一段——它是关于风格和“最佳实践”的。)
    但是sudo当你已经在一个 root shell 中时,使用它以 root 身份运行命令也是不必要的,而且在我看来有点糟糕的形式您的所有命令都以 root 身份运行。我认为这会很快导致人们对何时处于和不在 root shell 中的混淆。

或者您可以使用我在此处编写的说明,其中解释了如何获取所有必要信息。它们很长,但那是因为它们涵盖了可能不适合您的各种情况,包括根本无法登录计算机、想要重置密码以及让用户成为行政人员。他们还解释了如何在不需要太多先验知识或经验的情况下完成所有工作(例如,他们详细解释了如何从 Live CD 上的有用桌面启动和访问)。

您还有另一种选择:我的这些说明实际上是一般性介绍,与 Oli 所写的技术相同,更简洁、更针对具体情况。所以,根据我在那里写的内容,这里是如何找出要使用的命令来代替 sudo mount /dev/sdYY /mnt/boot # change sdYY to your root partition

在您的 Ubuntu 系统(不是 live CD/DVD/USB 系统)中,在终端中运行以下命令:

mount | grep ' on / '
Run Code Online (Sandbox Code Playgroud)

您应该包括前空间on和后/

该命令产生类似于/dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0)输出的内容。前面的文本on(不包括空格)是包含 Ubuntu 系统根文件系统的分区的设备名称。记住它(或写下来)。

然后,一旦您在实时 CD/DVD/USB 上打开终端:

运行此命令:

sudo mount /dev/sda1 /mnt
Run Code Online (Sandbox Code Playgroud)

/dev/sda1如果不同,请替换为包含 Ubuntu 系统根文件系统的分区的设备名称。

除了使用您通过上述技术找到的设备名称之外,您还应该使用/mnt不是 /mnt/bootOli 的回答那样使用。但是,您可以继续按照那里的说明进行操作


fr0*_*1nd 5

恢复您的 Sudo 权限。

  1. 在启动菜单中,进入高级选项。
  2. 选择具有恢复模式的一种。
  3. 转到“根”
  4. 键入并输入:mount -rw -o remount /
  5. 键入并输入:usermod -a -G sudo USERNAMEHERE
  6. 键入并输入:reboot 您应该恢复您的 Sudo 权限。


归档时间:

查看次数:

13862 次

最近记录:

12 年,5 月 前