sudo su && su

Linux系統的su 命令的主要作用是讓用戶可以在已登錄的會話中切換到另外一個用戶,也就是不退出當前用戶的情況下登錄爲另外一個用戶。小編本文將詳細討論關於 su 命令的使用介紹,以及與 sudo 命令之間的區別。

Linux系統su 命令經常被用於切換到超級用戶或 root 用戶,主要是因爲在命令行下工作,經常需要 root 權限,同時su 命令也可以用於切換到任意非 root 用戶。

1、su 命令

使用 su 命令切換到 root 用戶,命令爲不帶命令行參數的 su 命令:su。

輸入su 命令後,系統會要求輸入的密碼是 root 用戶的密碼,在輸入正確的密碼之後,su 命令會在終端的當前會話中打開一個子會話。

2、su - 命令

還有一種方法可以切換到 root 用戶,就是運行 su - 命令。

而su 命令與 su - 命令之間的區別在於,前者在切換到 root 用戶之後仍然保持原始用戶的環境,而後者則是創建一個新的環境,相當於使用 root 用戶正常登錄。

注意:如果你想在 su - 命令的 - 後面傳遞更多的參數,那麼必須使用 su -l 而不是 su -。以下是 - 和 -l 命令行選項的說明:

【 - 】,【-l】 ,【--login】提供相當於用戶在直接登錄時所期望的環境。當使用【 - 】時,必須放在 su 命令的最後一個選項。其他選項【-l】 和 【--login】無此限制。

3、su –c

還有一個值得一提的 su 命令行選項爲:-c。該選項允許你提供在切換到目標用戶之後要運行的命令。

以上就是關於 Linux系統su 命令的基礎知識,下面就來分析下sudo 和 su 命令之間的區別。

區別1:關於密碼

兩個命令的最大區別是:sudo 命令需要輸入當前用戶的密碼su 命令需要輸入 root 用戶的密碼。很明顯,就安全而言,sudo 命令更好。例如,考慮到需要 root 訪問權限的多用戶使用的主機,使用 su 命令意味着需要與其他用戶共享 root 用戶密碼,這顯然會降低安全性。

此外,如果要撤銷特定用戶的超級用戶/root 用戶的訪問權限,唯一的辦法就是更改 root 密碼,然後再告知所有其他用戶新的 root 密碼。

而使用 sudo 命令就可以很好地處理以上的兩種情況。鑑於 sudo 命令要求輸入的是其他用戶自己的密碼,所以,不需要共享 root 密碼。同時,想要阻止特定用戶訪問 root 權限,只需要調整 sudoers 文件中的相應配置即可。

區別2:默認行爲

兩個命令之間的另外一個區別是其默認行爲。sudo 命令只允許使用提升的權限運行單個命令,而 su 命令會啓動一個新的 shell,同時允許使用 root 權限運行儘可能多的命令,直到明確退出登錄。

因此,su 命令的默認行爲是有風險的,因爲用戶有可能會忘記他們正在以 root 用戶身份進行工作,於是,無意中做出了一些不可恢復的更改。

區別3:日誌記錄

儘管 sudo 命令是以目標用戶(默認情況下是 root 用戶)的身份執行命令,但是它們會使用 sudoer 所配置的用戶名來記錄是誰執行命令。而 su 命令是無法直接跟蹤記錄用戶切換到 root 用戶之後執行了什麼操作。

區別4:靈活性

sudo 命令比 su 命令靈活很多,可以限制 sudo 用戶可以訪問哪些命令,用戶通過 sudo 命令只能訪問他們工作需要的命令,而 su 命令讓用戶有權限做任何事情。

區別5:sudo su

大概是因爲使用 su 命令或直接以 root 用戶身份登錄有風險,所以一些 Linux 發行版默認禁用 root 用戶賬戶。然而還是可以成功執行 su 命令,而不用輸入 root 用戶的密碼,運行以下命令:sudo su.

由於使用 sudo 運行命令,只需要輸入當前用戶的密碼。所以,一旦完成操作,su 命令將會以 root 用戶身份運行,這意味着它不會再要求輸入任何密碼。

如果想在系統中啓用 root 用戶賬戶,必須手動設置 root 用戶密碼,可以使用以下命令:sudo passwd root。

以上就是Linux系統su命令介紹以及與sudo之間的區別,希望幫助到有需要的用戶。

原文鏈接:https://baijiahao.baidu.com/s?id=1650617018562879667&wfr=spider&for=pc

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