Linux 中的 Sudo 和 Su 有什麼區別?

已發表: 2022-01-29

如果您是 Linux 用戶,您可能已經看到對 sudo 和 su 的引用。 How-To Geek 和其他地方的文章指導 Ubuntu 用戶使用 sudo 和其他 Linux 發行版的用戶使用 su,但有什麼區別?

sudo 和 su 是獲得 root 權限的兩種不同方式。 每個功能都有不同的方式,不同的 Linux 發行版默認使用不同的配置。

根用戶

su 和 sudo 都用於以 root 權限運行命令。 root 用戶基本上等同於 Windows 上的管理員用戶——root 用戶擁有最大權限,可以對系統執行任何操作。 Linux 上的普通用戶以減少的權限運行——例如,他們不能安裝軟件或寫入系統目錄。

要執行需要這些權限的操作,您必須使用 su 或 sudo 獲取它們。

蘇與須藤

su 命令會在您執行時切換到超級用戶(或 root 用戶),而無需其他選項。 您必須輸入 root 帳戶的密碼。 不過,這並不是 su 命令的全部功能——您可以使用它來切換到任何用戶帳戶。 如果您執行su bob命令,系統會提示您輸入 Bob 的密碼,並且 shell 將切換到 Bob 的用戶帳戶。

廣告

在 root shell 中運行完命令後,您應該鍵入exit以離開 root shell 並返回到受限權限模式。

Sudo 以 root 權限運行單個命令。 當您執行sudo command時,系統會在以 root 用戶身份運行command之前提示您輸入當前用戶帳戶的密碼。 默認情況下,Ubuntu 會記住密碼十五分鐘,並且在十五分鐘結束之前不會再次詢問密碼。

這是 su 和 sudo 之間的關鍵區別。 Su 將您切換到 root 用戶帳戶並需要 root 帳戶的密碼。 Sudo 以 root 權限運行單個命令——它不會切換到 root 用戶或需要單獨的 root 用戶密碼。

Ubuntu 與其他 Linux 發行版

su 命令是在 Linux 上獲取 root 權限的傳統方式。 sudo 命令已經存在了很長時間,但 Ubuntu 是第一個默認僅使用 sudo 的流行 Linux 發行版。 安裝 Ubuntu 時,會創建標準的 root 帳戶,但不會為其分配密碼。 在為 root 帳戶分配密碼之前,您無法以 root 身份登錄。

默認情況下使用 sudo 而不是 su 有幾個優點。 Ubuntu 用戶只需提供並記住一個密碼,而 Fedora 和其他發行版則要求您在安裝期間創建單獨的 root 和用戶帳戶密碼。

另一個優點是它不鼓勵用戶以 root 用戶身份登錄 - 或使用 su 獲取 root shell - 並保持 root shell 打開以執行他們的正常工作。 以 root 身份運行較少的命令可提高安全性並防止意外的系統範圍更改。

廣告

基於 Ubuntu 的發行版,包括 Linux Mint,也默認使用 sudo 而不是 su。

一些技巧

Linux 是靈活的,因此不需要太多工作就可以讓 su 與 sudo 一樣工作——反之亦然。

要使用 su 以 root 用戶身份運行單個命令,請運行以下命令:

su -c '命令'

這類似於使用 sudo 運行命令,但您需要 root 帳戶的密碼,而不是當前用戶帳戶的密碼。

要使用 sudo 獲得完整的交互式 root shell,請運行sudo –i。

您必須提供當前用戶帳戶的密碼,而不是 root 帳戶的密碼。

在 Ubuntu 中啟用 Root 用戶

要在 Ubuntu 上啟用 root 用戶帳戶,請使用以下命令為其設置密碼。 請記住,Ubuntu 建議不要這樣做。

須藤密碼根

廣告

Sudo 會在您設置新密碼之前提示您輸入當前用戶帳戶的密碼。 使用您的新密碼從終端登錄提示符或使用 su 命令以 root 身份登錄。 您永遠不應該以 root 用戶身份運行完整的圖形環境——這是一種非常糟糕的安全做法,許多程序會拒絕運行。

將用戶添加到 Sudoers 文件

只有 Ubuntu 中的管理員類型帳戶才能使用 sudo 運行命令。 您可以從“用戶帳戶”配置窗口更改用戶帳戶的類型。

Ubuntu 自動將安裝期間創建的用戶帳戶指定為管理員帳戶。

如果您使用的是另一個 Linux 發行版,您可以通過以 root 權限運行visudo命令來授予用戶使用 sudo 的權限(因此首先運行su或使用su -c )。

將以下行添加到文件中,將user替換為用戶帳戶的名稱:

用戶全部=(全部:全部)全部

廣告

Ctrl-X ,然後按Y保存文件。 您還可以將用戶添加到文件中指定的組。 文件中指定的組中的用戶將自動擁有 sudo 權限。

甦的圖形版本

Linux 還支持圖形版本的 su,它會在圖形環境中詢問您的密碼。 例如,您可以運行以下命令以獲取圖形密碼提示並以 root 權限運行 Nautilus 文件瀏覽器。 按Alt-F2從圖形運行對話框運行命令,而不啟動終端。

gksu鸚鵡螺

gksu 命令還有其他一些技巧——它保留了您當前的桌面設置,因此當您以其他用戶身份啟動圖形程序時,它們不會顯得格格不入。 gksu 等程序是使用 root 權限啟動圖形應用程序的首選方式。

Gksu 使用基於 su 或 sudo 的後端,具體取決於您使用的 Linux 發行版。


您現在應該準備好同時遇到 su 和 sudo! 如果您使用不同的 Linux 發行版,您會遇到這兩種情況。

相關:適合開發人員和愛好者的最佳 Linux 筆記本電腦