在我們要了解這三者之間的區別之前,首先要知道如何進入su (#^.^#)

如何設定初始su密碼?

當我們輸入su時會發現要輸入密碼,我們嘗試輸入自己當前使用者的密碼,發現failure。

但我們又不知道su密碼是什麼?其實su初始密碼可以通過下面方式進行設定:

sudo passwd

設定完後再輸入su命令並鍵入剛才設定的密碼即可進入~
這裡寫圖片描述

su、su - 和sudo的區別是什麼?

su 切換到root使用者,但並不轉到root使用者家目錄下,即沒有改變使用者的環境。

su - 切換到root使用者,並轉到root使用者家目錄下,即改變到了root使用者的環境。

  通過sudo,我們能把某些超級許可權有針對性的下放,並且不需要普通使用者知道root密碼(sudo用的不是root密碼,而是當前使用者密碼),所以sudo相對於許可權無限制性的su來說,還是比較安全的,所以sudo也能被稱為受限制的su,另外sudo是需要授權許可的,所以也被稱為授權許可的su。

以下是例項截圖,請將我上面說的理論與實踐相結合,加深理解:
這裡寫圖片描述
注意到了沒有?su退出的結果為exit,而su - 退出的結果為logout!

下面我來進一步說明 — —

單純使用su切換到root,讀取變數的方式是non-login shell,這樣的方式僅僅是切換到root的身份。

而用su - 這樣的方式的話,是login shell方式,它是先以root身份登入然後再執行別的操作。