2021-05-12 14:32:11
Linux系統入門學習:怎樣解決「XXX is not in the sudoers file」錯誤
問題:我想在我的Linux系統上使用sudo來執行一些特權命令,然而當我試圖這麼做時,我卻得到了"[我的使用者名稱] is not in the sudoers file. This incident will be reported."的錯誤資訊。我該怎麼處理這種sudo錯誤呢?
sudo是一個允許特定的使用者組用另一個使用者(典型的是root)的特權來執行一個命令。sudo有詳細的紀錄檔功能,並且提供了對使用者可通過sudo來執行哪些命令的細粒度控制。
Sudo vs. Su
su命令也提供了同樣的特權提升功能,兩者不同的是它們認證過程和特權變化的粒度。su允許你從你的登入對談切換到另一個使用者的對談,然後你可以隨心所欲地用該使用者的特權來執行任何程式,但是你需要知道目標使用者的密碼才能切換這個使用者。而另一方面,sudo能在單個命令的基礎上工作,允許你用root的特權來執行單個命令。用sudo你不必一定要知道root的密碼,但是在提示輸入sudo密碼的時候要輸入你的密碼。
在Sudoers列表裡新增使用者
作為一個新使用者的你如果試圖執行sudo命令,你會碰到以下錯誤。意思是你不在這個包含經過認證就可以使用sudo特權的這麼一個使用者組的sudoers列表裡。
- [my-user-id]isnotin the sudoers file.This incident will be reported.
有兩個方法可以把你加入到sudoers列表中去。
方法一
第一個方法是把你新增到名為sudo的Linux使用者組裡。這個特殊的Linux使用者組是預設定來使用sudo的。因此,一旦你在這個組裡面,那你就可以執行sudo命令了。
以下命令會把你加入到Linux的sudo組裡,來確保讓你能作為root使用者來執行命令。
- # adduser <使用者名稱> sudo
現在來確認你的組員資格有沒有更新,使用groups命令來看看你當前屬於哪個組的列表裡。這個列表必定是包含sudo組的。
- $ groups
- alice adm cdrom sudo dip plugdev fuse lpadmin netdev sambashare davfs2 libvirtd docker promiscuous
組員資格變動(和sudo存取)會在你登出後重新登入後生效。
方法二
第二個能讓你使用sudo的方法是直接把你自己新增到 /etc/sudoers 這個組態檔中去。
要修改 /etc/sudoers 檔案,你可以使用一個名為visudo的特殊sudo編輯器命令。用root身份簡單呼叫以下命令。
- # visudo
這條命令能開啟並編輯 /etc/sudoers 檔案,將以下這行文字新增至檔案末尾,並按Ctrl+X。提示出現時,儲存修改退出。
- <username> ALL=(ALL) ALL
這個修改會立即生效,你就能馬上使用sudo了。
相關文章