Linux系統(tǒng)非root用戶使用sudo命令報錯應(yīng)該如何解決?
Linux系統(tǒng)非 root 用戶使用 sudo 命令報錯是一個常見問題。解決這個問題的核心在于:該用戶必須被授予使用 sudo 的權(quán)限。
錯誤原因分析
當(dāng)你看到類似這樣的錯誤時:
[username] is not in the sudoers file. This incident will be reported.
或者
[username] is not allowed to run sudo on [hostname].
根本原因是:該用戶賬戶沒有被系統(tǒng)信任為可以使用 sudo 命令的賬戶。
在 Linux 中,sudo 的權(quán)限由 /etc/sudoers 文件控制。只有在這個文件中明確指定的用戶或用戶組,才能使用 sudo。
解決方法
根據(jù)你當(dāng)前擁有的權(quán)限,解決方法不同。請參照以下流程圖找到適合你的路徑:

方案一:由 root 用戶操作(最常見和標(biāo)準(zhǔn)的做法)
你需要一個有 root 權(quán)限的用戶來執(zhí)行以下操作。
方法A:將用戶加入 wheel 組 (推薦)
在大多數(shù) Linux 發(fā)行版(如 CentOS, Fedora, RHEL)中,wheel 組的成員默認(rèn)擁有 sudo 權(quán)限。在 Debian/Ubuntu 及其衍生版中,對應(yīng)的通常是 sudo 組。
切換到 root 用戶:
su - root
或者使用另一個有 sudo 權(quán)限的用戶:
sudo su - root
將目標(biāo)用戶添加到 wheel (或 sudo) 組:
對于 CentOS/RHEL/Fedora:
usermod -aG wheel <用戶名>
對于 Debian/Ubuntu:
usermod -aG sudo <用戶名>
參數(shù)解釋:
-a:追加,表示將用戶添加到組而不移出其他組。
-G:指定組名。
驗證:
讓該用戶重新登錄(或開啟一個新的終端),然后運(yùn)行:
sudo whoami
如果正確輸入密碼后輸出 root,則表示成功。
方法B:使用 visudo 命令單獨添加用戶
這種方法更精細(xì),可以控制用戶能執(zhí)行的命令范圍。
1:以 root 用戶身份運(yùn)行 visudo:
visudo
重要:visudo 會檢查語法,防止你生成一個有語法錯誤的 sudoers 文件而導(dǎo)致所有 sudo 功能失效。
2:在文件中添加規(guī)則:
在打開的文件中找到類似的位置,添加一行:
# 允許用戶 "username" 在任何主機(jī)上以任何用戶身份運(yùn)行任何命令 username ALL=(ALL) ALL # 允許用戶 "username" 在任何主機(jī)上以任何用戶身份運(yùn)行任何命令,且無需輸入密碼 (不安全,請謹(jǐn)慎使用) username ALL=(ALL) NOPASSWD: ALL # 允許組 "groupname" 的成員在任何主機(jī)上以任何用戶身份運(yùn)行任何命令 %groupname ALL=(ALL) ALL
保存并退出(在 vi 編輯器中是按 Esc 然后輸入 :wq)。
方案二:如果你是系統(tǒng)的唯一擁有者(例如你的個人電腦)
如果你忘記了 root 密碼,或者初始用戶沒有 sudo 權(quán)限,你可以通過重啟系統(tǒng)進(jìn)入 單用戶模式 或 恢復(fù)模式 來獲取 root 權(quán)限。
警告:此方法需要物理機(jī)或虛擬機(jī)控制臺訪問權(quán)限,不適用于遠(yuǎn)程服務(wù)器。
步驟(以 GRUB 引導(dǎo)器為例):
1:重啟系統(tǒng)。在 GRUB 啟動菜單出現(xiàn)時,迅速按下 Esc、Shift 或 上下箭頭鍵 以進(jìn)入菜單。
2:選擇第一個啟動項(通常是默認(rèn)的 Linux 內(nèi)核),然后按下 e 鍵進(jìn)行編輯。
3:找到以 linux 或 linux16 或 linuxefi 開頭的行。
4:移動到該行的末尾,先添加一個空格,然后輸入:
single
或者
systemd.unit=rescue.target
(不同發(fā)行版可能略有不同)
5:按下 Ctrl + X 或 F10 以這個修改后的配置啟動。
6:系統(tǒng)會啟動到一個 root shell 提示符下(不需要密碼)。
7:現(xiàn)在你擁有了 root 權(quán)限,可以按照 方案一 中的方法,使用 usermod 或 visudo 為你的用戶添加 sudo 權(quán)限。
8:完成后,執(zhí)行 reboot 重啟系統(tǒng)。
上一篇:Nginx高性能優(yōu)化的幾個關(guān)鍵點
下一篇:Linux系統(tǒng)命令:配置介紹及修改配置
- 如何在Linux中運(yùn)行Bash腳本?
- Linux系統(tǒng)命令:find命令詳解
- Linux系統(tǒng)命令:配置介紹及修改配置
- Linux系統(tǒng)非root用戶使用sudo命令報錯應(yīng)該如何解決?
- Linux系統(tǒng)命令:重啟、關(guān)機(jī)、防火墻、進(jìn)程、服務(wù)
- Linux系統(tǒng)命令:主機(jī)狀態(tài)監(jiān)控、環(huán)境變量、文件傳輸及壓縮和解壓縮
- Linux快速安裝Niginx的shell腳本
- Linux服務(wù)器屏蔽國外IP訪問及簡單的防CC攻擊攔截
- Linux服務(wù)器如何關(guān)閉ipv6
- Linux磁盤空間清理的方法
