區別:1、sudo是以root使用者方式執行指令,su是用來變更其他使用者的身分來執行指令;2、sudo可以跳過root登入去執行一些特定的指令,只要提供目前的使用者密碼,而su不能跳過root登錄,必須提供root使用者密碼。
本教學操作環境:linux7.3系統、Dell G3電腦。
什麼是su
su的全名並不是super user,而是switch user,是不是就突然明白了?是切換使用者的意思。 su的一般使用方法是su 或su - ,兩種方法雖然只差了1個字符,但也是有比較大的差異的。
加入了-參數,就是login-shell的方式,也就是說切換到另一個使用者之後,目前的shell會載入對應的環境變數和各種設定;
如果沒有加入-參數,就是non-login-shell的方式,也就是說目前的shell還是載入切換之前的那個使用者的環境變數以及各種設定。
如果不想因為切換到另一個使用者導致自己在目前使用者下的設定不可用,那麼就可以用non-login-shell的方式;如果切換使用者後,需要用到該使用者的各種環境變量,那麼使用login-shell方式即可。
su的用法
su (英文全拼:switch user)指令用來變更為其他使用者的身分。
範例:
(1)su #預設切換到root用戶,輸入root密碼切換root用戶,最後執行exit指令可以切換到原先的用戶
這裡的密碼預設是不顯示的,下圖從song用戶切換到了root用戶
#輸入exit 時,切換到原來的用戶
(2)su (要切換的使用者名稱)
從root使用者切換到了song使用者註意:從root切換到別的使用者是不用輸入密碼的
假設如果有很多人管理這個主機的話,那不是很多人要知道root的password,並且可能有的人僅僅只是操作一次,那麼這個時候,su 方式就不是很好,root的password當然是越少人知道越好,越少人知道就越安全,這時就須要另一種方式了。就需要用sudo了
什麼是sudo
全稱為super user do,即以超級用戶的方式執行命令,這裡的超級用戶指的就是root用戶,我們在Linux中有時會遇到permission denied的情況,如以ubuntu用戶的身份查看/etc/shadow的內容,因為它是只有root用戶才能查看的,這個時候就可以使用sudo。
兩者的差別在於:
使用su - 提供root帳號的密碼,可以切換到root使用者;
使用sudo su -,提供目前使用者的密碼,也可以切換到root使用者。
如果我們的Linux系統有很多使用者需要使用的話,前者要求所有使用者都知道root使用者的密碼,顯然是非常危險的;後者是不需要暴露root帳號密碼的,使用者只需要輸入自己的帳戶密碼就可以。而且哪些使用者可以切換到 root,這完全是受 root 控制的(root 透過設定 /etc/sudoers 實現的),這樣系統就安全很多了。
推薦學習:Linux影片教學
#以上是linux中sudo和su有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!