執行 sudo su 和 su root 會做同樣的事情嗎?

執行 sudo su 和 su root 會做同樣的事情嗎?

兩者之間有哪些技術差異?我唯一注意到的是

sudo su

要求您輸入自己的密碼(假設您不是 root)

儘管

su root

要求您輸入 root 的密碼。然而,兩者似乎都會讓您登入根用戶帳戶。

答案1

兩者之間有細微的差別。su root(可以縮寫為su)以呼叫它的使用者身分執行 su 命令。以 root 身分sudo執行指定的命令 ( su)。以 root 身分運行su本質上是無操作,儘管它可能會啟動一個新的 shell。跑步sudo -i(在我看來)是一種更乾淨的跑步方式sudo su

另外,如前所述,預設的 Ubuntu 安裝沒有 root 密碼,因此su單獨呼叫將會失敗。

答案2

第二個命令無法在預設的 Ubuntu 安裝中執行,因為root帳戶未啟用。

但假設你已經解鎖了帳戶root並給了他密碼,我認為這兩個命令只能在環境和 shell 變數集中有所不同。比較env兩種情況下的輸出,也許還set可以查看差異的輸出。

答案3

另一個區別; sudo 命令使用您的密碼,並且您必須在 /etc/sudoers 檔案中獲得授權。 sudoers 檔案定義可讓您使用 sudo 執行哪些命令。 su 指令使用 ROOT 密碼。這是必須知道的。

根據選擇,您可以選擇紮根環境或將您的環境發揚光大。

我使用“sudo bash”來取得 root shell。這與“sudo -i”幾乎相同(也許是,我不確定)。環境是這樣控制的:「sudo su - other_user」取得 other_user 的環境。但是「sudo su other_user」會在 other_user 的 UID 下繼續執行您的環境。這意味著您的別名等將可用。

此外,使用 su 與 sudo 時,審核日誌中的審核結果也不同。使用 sudo 提高可追溯性。最後,對於 su 來說,你需要提供 root 密碼,並且維護起來很麻煩。如果您使用 sudo 授權人員,您只需更新 sudoers 檔案即可新增或刪除人員,並且他們只需記住自己的密碼。 Sudoers 還允許您決定其他人可以做什麼。

答案4

sudo -i 就是你這樣做的方式,至少從 11.00 開始,不確定 12.04 之前或之後。

讓您的環境在 other_user 的 UID 下前進。如前所述

相關內容