問題:我想在我的linux系統上使用sudo來運作一些特權指令,然而當我試圖這麼做時,我卻得到了"[我的使用者名] is not in the sudoers file. this incident will be reported."的錯誤資訊。我該怎麼處理這種sudo錯誤呢?
sudo是一個允許特定的使用者組用另一個使用者(典型的是root)的特權來運作一個指令。sudo有詳細的日志功能,并且提供了對使用者可通過sudo來運作哪些指令的細粒度控制。
<a target="_blank"></a>
su指令也提供了同樣的特權提升功能,兩者不同的是它們認證過程和特權變化的粒度。su允許你從你的登入會話切換到另一個使用者的會話,然後你可以随心所欲地用該使用者的特權來運作任何程式,但是你需要知道目标使用者的密碼才能切換這個使用者。而另一方面,sudo能在單個指令的基礎上工作,允許你用root的特權來運作單個指令。用sudo你不必一定要知道root的密碼,但是在提示輸入sudo密碼的時候要輸入你的密碼。

作為一個新使用者的你如果試圖運作sudo指令,你會碰到以下錯誤。意思是你不在這個包含經過認證就可以使用sudo特權的這麼一個使用者組的sudoers清單裡。
[my-user-id] is not in 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了。
----------------------------------------------------------------------------------------------------------------------------