我不小心从 sudoers 中删除了自己,我该如何解决这个问题?

m33*_*lky 21 sudo users

我有一个管理员帐户,最近我不小心将自己添加到一个组中(usermod -G没有-a)。

所以,我不再在 sudoers 文件中了。但是,默认情况下无法在 Ubuntu 上登录到 root。我是否在引导过程中重置root 的密码?

Mes*_*ion 36

无需重置 root 密码(好吧,从技术上讲,Ubuntu 的 root 甚至没有密码)。做这个:

  • 重启你的电脑

  • 在 Grub 的操作系统选择屏幕中,选择“Ubuntu xxxx - recovery mode

  • 现在您有一个具有 root 权限的控制台。将您的用户添加回sudo组:

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

shell 可能会回答说它不能这样做,因为文件系统以只读方式安装。要以读写方式重新挂载 fs:mount -o remount,rw /

  • 这对 sudo 来说就足够了。但它建议您也将自己重新添加到其他默认管理组。您可以重新启动,正常登录并使用GUI:

Menu > Administration > Users and Groups > Advanced Settings > User Privileges 或者 Account Type (Change...) > Administrative

笔记:

  • sudo组曾经是adminUbuntu 12.04 之前的组。如果您使用的是旧版,请sudo使用admin上述命令中的组替换组。
  • 从 Ubuntu 20.04 开始,该fuse组不再存在。它允许普通用户访问/dev/fuse使用fusemount,即挂载 FUSE 文件系统。但是由于 Debian 8 /dev/fuse默认情况下已经是世界可写的。

重要说明: 被视为“管理员”角色的默认组集会随着时间的推移而变化,因为某些组已过时或不相关(例如tapefloppy)、被删除、重命名或重新组织,或仅在您的系统中创建安装相关软件包时 (sambashare,virtualbox,www_data)。所以在几年内admcdrom或者lpadmin可能不存在(也就是说,如果它们仍然存在!)。

此外,目前使用组进行基于文件系统的权限的某些功能可能会更改为另一种访问权限机制,例如udev、PAM、AppArmor、SELinux 等。

因此,获得更新的组列表的唯一方法是……检查您当前的系统!使用 GUI 创建一个新的临时管理员用户,或在 VM 中进行全新安装,并查看默认情况下将用户分配到哪些组。

  • 很高兴你发现了。并希望您在尝试时没有“重置”root 的密码。在 Ubuntu 中,root 是一个被禁用的帐户(=无密码),这是有充分理由的。保持这种方式。您仍然可以使用 sudo、`sudo su`、恢复模式等。禁用 root 的密码仅意味着您不能在登录 shell 中以 root 身份*登录*,这是一个非常好的安全措施。 (2认同)