Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Ubuntu sudo 指令失效?將使用者加入 sudoers 的兩種標準做法

編輯:關於 Linux

Ubuntu 預設僅允許安裝時建立的第一個使用者透過 sudo 提權,後續新增的使用者若出現 user is not in the sudoers file. This incident will be reported.,即表示該帳號缺少提權授權。本文提供 visudo 編輯 與 usermod 兩種標準解法,並說明常見誤區。

現象確認

sudo apt update
# 輸出:user is not in the sudoers file. This incident will be reported.

方法一:visudo 編輯 /etc/sudoers(推薦)

  1. 以**已有 sudo 權限的使用者**登入,執行:
sudo visudo
  1. 在 # User privilege specification 區塊下新增一行:
username ALL=(ALL:ALL) ALL
  • username:目標使用者帳號
  • ALL=(ALL:ALL) ALL:允許在所有主機、以所有身分、執行所有指令
  1. 儲存離開(Ctrl+O、Enter、Ctrl+X),visudo 會自動語法檢查**,避免寫錯導致全系統 sudo 失效。

方法二:將使用者加入 sudo 群組(更簡潔)

sudo usermod -aG sudo username
# 或
sudo gpasswd -a username sudo
  • -aG:附加群組(不移除原有群組)
  • 修改生效需**重新登入**(登出再登入,或重啟)

Ubuntu /etc/sudoers 預設已包含:

%sudo ALL=(ALL:ALL) ALL

故加入 sudo 群組即自動獲得完整提權權限。

驗證權限

# 以目標使用者身分
sudo -l
# 輸出應包含 (ALL:ALL) ALL
sudo whoami
# 輸出 root

常見誤區與避坑

錯誤做法後果正確做法
直接用 vim /etc/sudoers 編輯語法錯誤導致所有 sudo 失效,需進單用戶模式修復務必用 visudo
刪除或註解預設 root ALL=(ALL:ALL) ALLroot 也無法 sudo,系統癱瘓保留預設行,僅新增
使用 usermod -G sudo username(缺 -a)移除使用者所有其他群組,可能導致登入失敗必須加 -a 附加
以目標使用者自己嘗試修改 sudoers無權限執行 visudo需由既有 sudo 使用者或 root 操作

緊急修復:單用戶模式重建 sudo 權限

  1. 重啟,GRUB 選單按 e 編輯啟動參數,在 linux 行尾加 init=/bin/bash。
  2. Ctrl+x 啟動,進入 root shell,掛載根目錄可寫:mount -o remount,rw /。
  3. 執行 usermod -aG sudo username 或 visudo 修復。
  4. exec /sbin/init 重新啟動 init 系統。

依循標準流程操作,即可安全、永久解決 sudo 權限缺失問題。

Copyright © Windows教程網 All Rights Reserved