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

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

我有一个管理员帐户,最近我意外地将自己添加到了一个组(usermod -G没有-a)。

所以,我不再在 sudoers 文件中。但是,在 Ubuntu 上默认无法以 root 身份登录。我应该重置启动过程中 root 的密码?

答案1

无需重置 root 密码(从技术上讲,Ubuntu 的 root 甚至不需要密码)。请执行以下操作:

  • 重新启动电脑

  • 在 Grub 的操作系统选择屏幕中,选择“Ubuntu xxxx -恢复模式

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

      usermod -a -G sudo youruser
    

shell 可能会回复说无法执行此操作,因为文件系统是以只读方式挂载的。要将您的文件系统重新挂载为读写方式:mount -o remount,rw /

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

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

  • 或者使用这个命令:

      sudo usermod -a -G adm,cdrom,plugdev,lpadmin,sambashare youruser
    

笔记:

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

重要的提示: 被视为“管理员”角色的默认组会随着时间的推移而变化,因为某些组会变得过时或不相关(例如tapefloppy),被删除、重命名或重新组织,或者仅在安装相关软件包时才会在系统中创建(sambasharevirtualboxwww_data)。因此,几年后admcdromlpadmin可能不存在(即如果他们仍然这么做!)。

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

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

相关内容