Ubuntu 執行 sudo 指令,出現 sudoers 錯誤

出現 sudoers 錯誤,不給執行 sudo 指令

這個錯誤出現:
XXX is not in the sudoers file. This incident will be reported.

造成無法執行任何 sudo 權限的指令,連關機 shutdown 都不行了。多半是因為在更動使用者群組的時候,下錯命令。常犯的錯誤,是要把某個 user 加入特定的 group 時,執行以下指令:
sudo usermod -G xxxgroup xxxuser

這個指令一執行以後,xxxuser 順利的加入 xxxgroup 中,但是同時也把 xxxuser 移出其他所有的 group,包含 sudo群組,而造成以上的問題。
正確的加入群組的命令,應該要是:
sudo usermod -a -G xxxgroup xxxuser
這樣才會將 xxxuser 加入 xxxgroup,而不會動到其他的 group 設定。
此問題的唯一解決辦法,必須直接到電腦伺服器主機端(假設你一直都是用 ssh 遠端連線,而不是直接在該主機前面操作),用該主機的鍵盤、螢幕,重新開機,並進入 Single User Mode。這樣j指令前面不需要加 sudo,就能取得 Super User 的權限。

進入 Ubuntu 的 Single User Mode

用主機的 Reset 開關,重新開機以後,按下鍵盤左邊的 Shift 鍵,進入 Grub 選單,然後選擇 Ubuntu 開機的那個選項,按下 e 鍵,便可以編輯開機指令。
尋找類似以下這行,kernel 開機參數
linux /boot/vmlinuz-3.2.0-24-generic root=UUID=bc6f8146-1523-46a6-8b\

6a-64b819ccf2b7 ro  quiet splash
然後把根目錄磁碟的 UUID 之後的那些文字改掉,整行改成:
linux /boot/vmlinuz-3.2.0-24-generic root=UUID=bc6f8146-1523-46a6-8b\

6a-64b819ccf2b7 rw init=/bin/bash
把原來的唯讀選項 ro,改成可讀寫 rw,同時設定初始狀態為 bash shell。
改完了以後,按下F10,或者 Ctrl-X,Ubuntu 就會按照剛剛改的參數開機,進入 Single Mode。
不用擔心剛剛改的內容,這個改動,只是一次性的,下次重開機,就會被改回來了。

重新把 user 加入 sudo Group

進入 single mode 之後,你直接就有管理者權限了,這時候,不管是重設密碼,或者是改動 user group 都可以了。馬上把  xxxuser 加回 sudo group 中。

usermod -a -G sudo xxxuser
因為已經有管理者權限了,指令前面不需要加 sudo。上述指令中的 xxxuser,是我舉例用的名字,你自己改成你原來登入系統的那個 user name。
改好了以後,你可以看看有沒有正確加入了:
cat /etc/group | grep xxxuser
查看是否正確了。
改好了以後,按下 Ctrl-Alt-Delete 重開機,之後就會正常了。

沒有留言:

張貼留言