Linux使用者不在sudoers檔案中
阿新 • • 發佈:2019-01-25
*** is not in the sudoers file. This incident will be reported.”
(使用者不在sudoers檔案中……)
處理這個問題很簡單,但應該先理解其原理再操作。首先要明白root的密碼一般使用者是不應該知道的,但一般使用者有時可能要用到root的一些許可權。
這裡就有了一個 /etc/sudoers 檔案,用來儲存一些使用者,使這些使用者可以通過sudo命令來暫時獲取root的許可權。這些使用者使用sudo時輸入的密碼是當前使用者密碼,而不是root密碼。還可以在sudoers檔案裡限制一般使用者的許可權,這樣就有了安全保證。
我在網上搜這個問題,大家都是這樣解決的:
現在要讓你的使用者獲得sudo使用權
1.切換到超級使用者root
$su -
2.檢視/etc/sudoers許可權,可以看到當前許可權為440
$ ls -all /etc/sudoers
-r--r----- 1 root root 744 6月 8 10:29 /etc/sudoers
3.更改許可權為777
$chmod 777 /etc/sudoers
4.編輯/etc/sudoers
$vi /etc/sudoers
5.在檔案中找到root ALL=(ALL) ALL,在該行下新增提升許可權的使用者資訊,如:
root ALL=(ALL) ALL
‘yourname’ ALL=(ALL) ALL
然後儲存退出。
第一個ALL是指網路中的主機,我們後面把它改成了主機名,它指明你的使用者可以在此主機上執行後面的命令。
第二個括號裡的ALL是指目標使用者,也就是以誰的身份去執行命令。
最後一個ALL當然就是指命令名了。
具體這裡不作說明
6.把/etc/sudoers許可權改回440
$chmod 440 /etc/sudoers
7.操作完成,切換到你的使用者下測試一下
實際上,這個問題也不沒這麼複雜,因為預設只有root能夠執行sudo,因此其他賬號若要使用sudo執行屬於root的許可權命令,則root需要先使用visudo去修改/etc/sudoers,讓該賬號能夠使用全部或部分root命令功能。visudo相比直接使用vi的好處就在於,/etc/sudoers是有語法的,如果設定錯誤那會造成無法使用sudo命令的後果,而使用visduo去修改,系統會去檢驗有無語法錯誤。
1.切換到超級使用者root
$su -
2.編輯/etc/sudoers
$visudo
3.在檔案中找到root ALL=(ALL) ALL,在該行下新增提升許可權的使用者資訊,如:
root ALL=(ALL) ALL
‘yourname’ ALL=(ALL) ALL
然後儲存退出,效果和上面的方法是一樣的。