sudo執行命令,xx is not in the sudoers file. This incident will be reported.解決
阿新 • • 發佈:2019-01-07
使用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