我不小心將自己從 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)、被刪除、重新命名或重新組織,或僅在相關套件時才在系統中建立已安裝 ( sambashare, virtualbox, www_data)。所以幾年後admcdrom或者lpadmin可能不存在(也就是說,如果他們仍然這樣做!

此外,目前使用群組進行基於檔案系統的權限的某些功能可能會變更為其他存取權限機制,例如udev、PAM、AppArmor、SELinux 等。

因此,獲取更新的群組清單的唯一方法是...檢查您目前的系統!使用 GUI 建立新的臨時管理員用戶,或在 VM 中進行全新安裝,並查看預設將使用者指派到哪些群組。

相關內容