歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統入門學習:怎樣解決“XXX is not in the sudoers file”錯誤

Linux系統入門學習:怎樣解決“XXX is not in the sudoers file”錯誤

日期:2017/2/28 14:21:50   编辑:Linux教程

問題:我想在我的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列表裡。

  1. [my-user-id]isnotin the sudoers file.This incident will be reported.

有兩個方法可以把你加入到sudoers列表中去。

方法一

第一個方法是把你添加到名為sudo的Linux用戶組裡。這個特殊的Linux用戶組是預配置來使用sudo的。因此,一旦你在這個組裡面,那你就可以運行sudo命令了。

以下命令會把你加入到Linux的sudo組裡,來確保讓你能作為root用戶來運行命令。

  1. # adduser <用戶名> sudo

現在來確認你的組員資格有沒有更新,使用groups命令來看看你當前屬於哪個組的列表裡。這個列表必定是包含sudo組的。

  1. $ groups

  1. alice adm cdrom sudo dip plugdev fuse lpadmin netdev sambashare davfs2 libvirtd docker promiscuous

組員資格變動(和sudo訪問)會在你登出後重新登錄後生效。

方法二

第二個能讓你使用sudo的方法是直接把你自己添加到 /etc/sudoers 這個配置文件中去。

要修改 /etc/sudoers 文件,你可以使用一個名為visudo的特殊sudo編輯器命令。用root身份簡單調用以下命令。

  1. # visudo

這條命令能打開並編輯 /etc/sudoers 文件,將以下這行文字添加至文件末尾,並按Ctrl+X。提示出現時,保存修改退出。

  1. <username> ALL=(ALL) ALL

這個修改會立即生效,你就能馬上使用sudo了。

Copyright © Linux教程網 All Rights Reserved