sudo: java:找不到命令

神奇的事情又發生了

今個在sudo java的時候,發現了找不到java命令的錯誤。
然後我在普通用戶下和root用戶下分別測試,都能找到java命令。
???奇了怪了,那這個sudo幹了什麼?

網上找了下分析,發現答案真是參差不齊。現在來梳理下我的思路。
sudo的配置文件是在/etc/sudoers裏,網上有的教程是修改這個文件,但是這個文件的權限相當高,root用戶都是隻讀權限,我感覺修改這個文件不是很合適。
先來看看這個文件幹了什麼。當sudo的時候,會首先使用這個文件進行配置,env_reset的作用就是將當前的環境變量全部重置,因此之前配置的那些都失效了。然後後面有個secure_path,這裏寫的地址是重置忽略的環境變量,即當前允許使用的環境變量的存放位置。

因此,要是能夠讓sudo java起作用,可以直接修改這裏的內容,添加java的路徑。合適嗎?不太合適。那咱們再來仔細觀察一下這裏的secure_path:
/etc/sudoers
你會發現,當前用戶下的/usr/bin裏的環境變量是允許讀取的,那麼,我們可不可以把要用到的命令軟連接到這個文件夾下面呢?
在這裏插入圖片描述
bingo~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章