我今天启动了 Ubuntu 12.10,在尝试时sudo
,我像往常一样输入了密码,但它说我不是 sudoer。所以我去用户帐户下检查我的帐户,不知为何我现在是标准用户?
我已经尝试通过恢复模式重新将自己添加为管理员,但没有成功。
编辑:UserMod 命令不起作用。收到错误:usermod:无法锁定 /etc/passwd;请稍后重试。
编辑 2:感谢所有提供帮助的人!非常感谢您的支持!
答案1
从 Ubuntu 12.04 开始,sudo
组将管理权限授予用户。admin
组也将授予用户管理权限,但只有存在,除非您从以前的版本升级或手动创建它,否则它不会。
- 有关详细信息,请参阅For more information, see‘sudo’ 和 ‘admin’ 组之间有什么区别?
- 即使你从 12.04 之前的版本开始升级,如果导致此问题的事件是无意的删除那么通过将自己添加到组中
admin
来修复此问题的尝试admin
也会失败。
因此,您必须将自己添加到sudo
组中,而不是添加到admin
组中。为此,请在恢复模式下启动并进入 root shell(如前所述),然后运行:
usermod -a -G sudo username
确保更换username
使用您的实际用户名。
然后,您将再次成为管理员。
(如果这不起作用或产生错误,请在此处评论以简要解释发生了什么,并编辑您的问题以添加尽可能多的有关发生了什么的信息。)
来源: 如何授予我的帐户管理员权限?
当这种方法不起作用时
您收到错误usermod: cannot lock /etc/passwd; try again later
。
usermod
即使在恢复模式下,显然也无法获得对/etc/passwd
(必须修改的文件)的正确访问权限。
希望直接启动到 root shell没有通过恢复模式菜单效果会更好。所以尝试“另一种方式清醒”(但与前面一样,不是运行 ,而是运行)。usermod -a -G sudo username
passwd username
如果不起作用,你可以尝试Oli 提出的 Aditya 解决方案,但有两个主要警告:
您只能使用这些说明如果您对系统的了解足以
change sdYY to your root partition
按其要求“ ” (即,如果您知道根分区的设备名称)。不要
sudo adduser your-username admin
按照它说的跑;而是跑adduser your-username sudo
。(或者usermod -a -G your-username
。)重要的是,您将自己添加到
sudo
而不是admin
。(请随意跳过本段——它是关于风格和“最佳实践”的。)
sudo
但是,当你使用 root 身份运行命令时, 这也是不必要的,而且在我看来,这样做有点不好。已经在 root shell 中,所有命令都以 root 身份运行。我认为这很快就会让人产生混淆,不知道何时是 root shell,何时不是。
或者你可以使用我在这里写的说明,其中解释了如何获取所有必要的信息。它们很长,但这是因为它们涵盖了各种可能不适用于您的情况,包括根本无法登录机器,以及想要重置密码以及让用户成为管理员。它们还解释了如何在不需要太多先验知识或经验的情况下完成所有操作(例如,它们详细解释了如何从实时 CD 启动并访问有用的桌面)。
你还有另一种选择:我的这些说明实际上是一种一般性的介绍,与 Oli 更简洁、更具体的情况所写的技术相同。所以,从我所写的内容来看那里,下面介绍如何找出要使用的命令代替 sudo mount /dev/sdYY /mnt/boot # change sdYY to your root partition
:
在您的 Ubuntu 系统(不是实时 CD/DVD/USB 系统)中,在终端中运行此命令:
mount | grep ' on / '
on
您应该在 之前和 之后添加空格/
。
该命令会产生类似于/dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0)
输出的内容。前面的文本on
(不包括空格)是包含 Ubuntu 系统根文件系统的分区的设备名称。记住它(或写下来)。
然后,一旦您在实时 CD/DVD/USB 上打开终端:
运行此命令:
sudo mount /dev/sda1 /mnt
代替
/dev/sda1
如果不同,则将其替换为包含 Ubuntu 系统根文件系统的分区的设备名称。
除了使用上述技术找到的设备名称外,你还应该/mnt
使用不是 /mnt/boot
如同Oli 的回答。但你可以继续那里的说明。
答案2
恢复您的 Sudo 权限。
- 在启动菜单中,进入高级选项。
- 选择一个具有恢复模式的。
- 转到“根”
- 输入并输入:mount -rw -o remount /
- 输入并输入:usermod -a -G sudo USERNAMEHERE
- 键入并输入:reboot 您应该恢复您的 Sudo 权限。