linux中sudo和su有什么區別

區別:1、sudo是以root用戶方式執行命令,su是用來變更其他使用者的身份來執行命令;2、sudo可以跳過root登錄去執行一些特定的命令,只需提供當前的用戶密碼,而su不能跳過root登錄,必須提供root用戶密碼。

linux中sudo和su有什么區別

本教程操作環境:linux7.3系統、Dell G3電腦。

linux中sudo和su有什么區別

什么是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用戶

linux中sudo和su有什么區別

輸入exit 時,切換到原來的用戶

linux中sudo和su有什么區別

(2)su (要切換的用戶名)

從root用戶 切換到了 song用戶 注意:從root切換到別的用戶是不用輸入密碼的

linux中sudo和su有什么區別

假設如果有很多人管理這個主機的話,那不是很多人要知道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視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享