在網上搜了一下 sudo 免除密碼,發現幾個沒講清楚的地方。

於是我把這些誤區彙總一下,方便以後查看。

正確的 sudo 姿勢 ✔

爲了避免留下錯誤的第一印象,先提出來正確的sudo姿勢。

首先,在你的終端敲入如下指令:

sudo visudo # 用vi編輯 /etc/sudoers

在彈出的窗口中按 G 定位到 最後一行 ,按 o 另起一行,輸入:(複製然後 shift+insert 粘貼)

# Extra users can run sudo without password
# 請將 username 替換爲你的用戶名
username  ALL=(ALL:ALL) NOPASSWD: ALL

Esc , 輸入 :wq 保存退出。

註銷再登錄,sudo ls 發現問題解決了!

錯誤的 SUDO 害死人 ✗

錯誤死法一:命令糊塗

糊里糊塗就別寫“ps”啦!

糊里糊塗就別寫“ps”啦!

真的如他所說四行任意一條都可以嗎?

首先先不說前兩條屬於離題萬里 是添加到sudo 組而不是免密運行,第三行我實測過就是不行的。

因爲如果你沒有寫在 文件尾部 而是像文章所述寫在 root 下面的話你的用戶設置會被 %admin 組設置給覆蓋掉!最終什麼都不會發生!

糊塗寫法正確率 14, 25%。

錯誤死法二:好死不死修改 sudoers 權限

error2

我且不說這個縫合怪明明已經是 root 了爲什麼還要添加寫權限,這個例子還算是安全的。網上有些教程直接讓你把 sudoers 的權限給予當前用戶,真是嚇得我一跳。系統文件的權限你也是可以隨便交付的,一旦交付這個賬戶就成爲單點故障,一個泄漏全盤泄漏。而且這種認爲 bug 被添加上去之後還不好查,畢竟沒人天天注意各個文件的權限。

錯誤死法三:使用自動應答

C某DN 上的一種普遍方法

C某DN 上的一種普遍方法

這個… 何止是有隱患, 把它用在生產環境簡直就是報復老闆。很明顯可以看到這個命令將 /tmp/pass 作爲緩衝區明文保存密碼, 用完連刪都懶得刪…

/tmp 目錄作爲一個權限開放的目錄,別人完全可以監控這個目錄的文件變化。所以就算是 pass 文件刪掉也是不安全的啦!

而且就算就算他直接將 echo 的內容定向到 sudo 裏面,也是不安全的。任何明文儲存的密碼都存在隱患(何況是存在環境變量裏!) sudo 之所以要密碼當然不是爲了來防管理員,如果有人有與你的電腦 “親密接觸” 的機會 , 他可以在很短的時間裏面將你的 管理員密碼 都搞到,當然 sudo 無需密碼本身就不安全,不過在段時間內通過 猛擊鍵盤 獲得管理員密碼也不是一般人可以辦到的吧。