深入理解 sudo 與 su 之間的區別【轉】

來源:互聯網
上載者:User

標籤:為什麼   配置   退出   錄屏   撤銷   命令列   ash   csdn   鼓勵   

深入理解 sudo 與 su 之間的區別

兩個命令的最大區別是:

sudo 命令需要輸入目前使用者的密碼,su 命令需要輸入 root 使用者的密碼。另外一個區別是其預設行為。sudo 命令只允許使用較高的權限運行單個命令,而 su 命令會啟動一個新的 shell,同時允許使用 root 許可權運行儘可能多的命令,直到明確退出登入。

Linux su 命令

su 命令的主要作用是讓你可以在已登入的會話中切換到另外一個使用者。換句話說,這個工具可以讓你在不登出目前使用者的情況下登入狀態另外一個使用者。
su 命令經常被用於切換到超級使用者或 root 使用者(因為在命令列下工作,經常需要 root 許可權),但是 - 正如前面所提到的 - su 命令也可以用於切換到任意非 root 使用者。
如何使用 su 命令切換到 root 使用者,如下只需在終端直接輸入su即可:
su
不帶命令列參數的 su 命令
如上,su 命令要求輸入的密碼是 root 使用者的密碼。所以,一般 su 命令需要輸入目標使用者的密碼。在輸入正確的密碼之後,su 命令會在終端的當前會話中開啟一個子會話。
su -
還有一種方法可以切換到 root 使用者:運行 su - 命令
su - 命令
那麼,su 命令與 su - 命令之間有什麼區別呢?前者在切換到 root 使用者之後仍然保持舊的(或者說原始使用者的)環境,而後者則是建立一個新的環境(由 root 使用者 ~/.bashrc 檔案所設定的環境),相當於使用 root 使用者正常登入(從登入螢幕登入)。
sudo vs. su
現在,我們已經討論了關於 su 命令的基礎知識,是時候來探討一下 sudo 和 su 命令之間的區別了。

關於密碼

兩個命令的最大區別是:sudo 命令需要輸入目前使用者的密碼,su 命令需要輸入 root 使用者的密碼。
很明顯,就安全而言,sudo 命令更好。例如,考慮到需要 root 存取權限的多使用者使用的電腦。在這種情況下,使用 su 意味著需要與其他使用者共用 root 使用者密碼,這顯然不是一種好習慣。
此外,如果要撤銷特定使用者的超級使用者/root 使用者的存取權限,唯一的辦法就是更改 root 密碼,然後再告知所有其他使用者新的 root 密碼。
而使用 sudo 命令就不一樣了,你可以很好的處理以上的兩種情況。鑒於 sudo 命令要求輸入的是其他使用者自己的密碼,所以,不需要共用 root 密碼。同時,想要阻止特定使用者訪問 root 許可權,只需要調整 sudoers 檔案中的相應配置即可。

預設行為

兩個命令之間的另外一個區別是其預設行為。sudo 命令只允許使用較高的權限運行單個命令,而 su命令會啟動一個新的 shell,同時允許使用 root 許可權運行儘可能多的命令,直到明確退出登入。




因此,su 命令的預設行為是有風險的,因為使用者很有可能會忘記他們正在以 root 使用者身份進行工作,於是,無意中做出了一些不可恢複的更改(例如:對錯誤的目錄運行 rm -rf 命令!)。關於為什麼不鼓勵以 root 使用者身份進行工作的詳細內容,請參考這裡[3]。

日誌記錄

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

靈活性

sudo 命令比 su 命令靈活很多,因為你甚至可以限制 sudo 使用者可以訪問哪些命令。換句話說,使用者通過 sudo 命令只能訪問他們工作需要的命令。而 su 命令讓使用者有許可權做任何事情。
sudo su
大概是因為使用 su 命令或直接以 root 使用者身份登入有風險,所以,一些 Linux 發行版(如 Ubuntu)預設禁用 root 使用者帳戶。鼓勵使用者在需要 root 許可權時使用 sudo 命令。
然而,您還是可以成功執行 su 命令,而不用輸入 root 使用者的密碼。運行以下命令:
sudo su
由於你使用 sudo 運行命令,你只需要輸入目前使用者的密碼。所以,一旦完成操作,su 命令將會以 root 使用者身份運行,這意味著它不會再要求輸入任何密碼。
PS:如果你想在系統中啟用 root 使用者帳戶(強烈反對,因為你可以使用 sudo 命令或 sudo su 命令),你必須手動設定 root 使用者密碼,可以使用以下命令:

sudo passwd root

 

轉自

深入理解 sudo 與 su 之間的區別 - CSDN部落格 71554302

深入理解 sudo 與 su 之間的區別【轉】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.