1. 程式人生 > >sudo執行命令,xx is not in the sudoers file. This incident will be reported.解決

sudo執行命令,xx is not in the sudoers file. This incident will be reported.解決

使用sudo執行root許可權才能執行的命令時,輸入密碼後執行被終止,命令列提示:

xx is not in the sudoers file.  This incident will be reported.

即:xx不在 sudoers 檔案中。此事將被報告。

這個提示是因為該使用者沒有執行sudo的許可權,因為該使用者的許可權資訊不在sudoers配置檔案中。

解決方法:

①切換root使用者

su root

②修改sudoers檔案。/etc資料夾通常是儲存linux各種配置檔案的地方,sudoers檔案也在此資料夾下。

 可以使用一些常用的編輯器如vi或者vim等來編輯這個檔案,但是由於到這個配置檔案的重要性,linux有一個專門用於編輯這個檔案的命令visudo,在編輯後儲存退出時會自動檢查語法設定,以免配置錯誤二導致無法使用sudo命令。

[email protected]:~# visudo

找到root    ALL=(ALL:ALL) ALL一行,在下面加上一行username   ALL=(ALL:ALL) NOPASSWD:ALL。(有的版本括弧中僅有一個ALL,照寫一個即可)

root    ALL=(ALL:ALL) ALL
test   ALL=(ALL:ALL) NOPASSWD:ALL

新加入的這一行中有4個ALL,表示使用者test可以從任何地方(第一個ALL)登入後執行任何使用者組的任何使用者(第二個ALL-任何使用者,第三個ALL-任何使用者組)的任何指令(第四個ALL),NOPASSWD表示該使用者執行sudo時可以不需要重複輸入密碼。

修改完成後,使用剛才設定的使用者登入,就可以使用sudo命令了。

以上設定針對的是test這個使用者,還有一些更強的許可權設定功能,比如定義某一組的root許可權、定義可以執行的命令表等:

# 設定test使用者組的所有使用者許可權
%test   ALL=(ALL:ALL) NOPASSWD:ALL

#設定test使用者可以sudo執行的命令列表,比如關閉或者重啟伺服器
test   ALL=(ALL:ALL) NOPASSWD:/sbin/shutdown,/usr/bin/reboot