解決ubuntu系統“XXX is not in the sudoers file”錯誤

王明輝發表於2019-02-15

用adduser新建的使用者,當時只輸入了一個使用者名稱,沒做其它操作,這樣就建立了一個normal使用者。在執行sudo vim hadoop-env.sh時,報“*** is not in the sudoers file.  This incident will be reported.”。

經查詢,網上的解決方案大多數都是:

執行visudo或vim /etc/sudoers命令,然後在root使用者下面增加<username> ALL=(ALL) ALL

我相信這樣一定可以解決問題,但這是殺雞用牛刀。看起來似乎是讓這個使用者和root一樣擁有了全部全部全部的許可權,有沒有感覺瑟瑟發抖。像這樣的方法,我們自己使用玩玩還可以,但這肯定不是正確的解決方法。更何況,在安裝系統時建立的一個使用者hadoop1,可以使用sudo,但這個使用者名稱並不在sudoers 這個檔案裡,所以肯定有其它正確的方法。

後來在這裡https://www.cnblogs.com/yadongliang/p/8659950.html發現了,博主所說的他沒有成功的方案一,我測試成功。

sudo是個使用者組,只要把使用者加到這個使用者組,就可以使用sudo了,這才叫解決方案。

下面是具體步驟:

切換到不能使用sudo的使用者,就叫hadoop2吧,登入以後,執行groups命令,發現是空的,也就是說用adduser增加的使用者,不在任何使用者組裡。

而安裝系統時建立的使用者,hadoop1則有很多使用者組:

adm cdrom sudo dip plugdev lpadmin sambashare

所以,用adduser把hadoop2加到sudo使用者組:

adduser hadoop2 sudo

再次執行groups,sudo使用者組就出現了。

再次執行sudo vim hadoop-env.sh,成功。

相關文章