Run0 與 Sudo:有什麼區別?

Run0 與 Sudo:有什麼區別?
顯示帶有命令的終端機提示的監視器照片

Run0 是一個新的權限提升程序,適用於基於 Systemd 的 Linux 系統。與 sudo 類似,它允許您以 root 使用者身分執行命令並存取電腦的內部結構。在本文中,我們比較 Run0 與 Sudo,以協助您確定適合您的權限提升工具。

Run0 與 Sudo:並排比較

類別 運行0 須藤
可配置性 不附帶設定檔。使用命令列標誌來更改其行為 附帶兩個設定檔和很多命令列標誌
使用方便 簡單明了,適用於大多數任務 可能需要一些配置才能正常運作
安全 不依賴 SUID 且程式碼佔用更小 依賴 SUID,並且由於程式碼大小而具有更大的攻擊面
可擴展性 不支援第三方插件 擁有用於開發第三方外掛程式的API
網路支援 設計為在單一機器上運行 可以使用集中存取策略處理電腦網絡
最適合 尋找更簡單的 Sudo 替代方案的臨時用戶 高級用戶正在尋找可自訂的可靠選項

什麼是 Run0 以及為什麼要使用它

Run0 在 Systemd 256 版本中發布,是 Linux 權限提升的獨特方式。它使用 Systemd-run 建立一個安全且隔離的環境,用於以 root 權限執行程式。

Run0 的主要賣點是它不依賴 setuid (SUID) 來執行 root 指令。這使得程式免受大型 SUID 程式常見的權限升級攻擊。

與 run0 相比,突出顯示 sudo 二進位檔案的 setuid 屬性的終端。

Run0 的另一個賣點是它將其驗證代理程式卸載到 Polkit。該程式管理系統上應用程式的策略設定。它不僅將身份驗證集中在您的電腦上,而且還使您可以更好地控製程式和使用者如何取得 root 存取權。

最後,每當您呼叫特權指令時,Run0 都會建立一個新的偽 TTY (PTY)。這意味著程式不會繼承目前的 shell 環境,從而可以輕鬆隔離系統上行為不當的進程。

系統的 systemctl 上反白顯示 PTY 根進程的終端。

什麼是 Sudo 以及為什麼使用它

Sudo 是 Linux 和其他類 UNIX 作業系統最早的權限提升程式之一。它最初開發於 20 世紀 80 年代,使用內建的 UNIX 使用者和群組系統來管理系統命令的 root 權限。

sudo 的一個關鍵賣點是它是一種用於權限提升和權限的一體化解決方案。有了它,您只需要配置 sudoers 檔案來管理誰可以成為超級用戶以及他們可以以 root 身份運行哪些程式。這對於想要以簡化的方式管理 root 存取權的系統管理員來說很有吸引力。

顯示 sudoers 檔案內容的終端。

使用 sudo 的另一個原因是它可以監視和查看不同超級使用者在電腦上運行的系統命令的歷史記錄。這在故障排除時非常有用,因為它可以指出系統出現問題的確切時刻。

顯示 sudoreplay 命令輸出的終端,其中列出了系統中運行的所有 sudo 命令。

最後,sudo 憑藉其內建的 LDAP 和 Active Directory 支持,可以輕鬆跨多個主機進行擴充。因此,對於為團隊和企業管理多台電腦的管理員來說,sudo 也是一個很好的工具。

Run0 與 Sudo:綜合比較

雖然 Run0 和 Sudo 是提升使用者權限的絕佳工具,但這兩個程式採用了不同的方法來實現它。下面,我們將探討其中的一些差異,以幫助您確定哪一種更適合您。

可配置性

與其他權限提升程式不同,Run0 不使用設定檔來變更其預設行為。相反,當您在終端上運行它時,您可以使用一些內建標誌對其進行自訂。這使您可以專注於工作流程,而不是陷入調整設定檔的困境。

顯示 run0 幫助畫面的終端機。

另一方面,sudo 在其兩個主要設定檔中提供了許多選項:「/etc/sudo.conf」和「/etc/sudoers」。兩者攜手合作來控制 sudo 在系統上的工作方式。例如,您甚至可以將 sudo 配置為無需密碼即可運行。雖然這可能會讓新用戶感到困惑,但這種程度的靈活性和自訂允許您製作自己的自訂 sudo 工作流程。

顯示 sudo.conf 檔案內容的終端。

獲勝者:須藤

使用方便

如今,大多數 Linux 發行版都附帶了 Run0 和 Sudo 以及合理的預設值,使它們易於使用,無需任何額外的配置。也就是說,這兩個程式之間仍然存在一些可用性怪癖,這可能會破壞某些用戶的交易。

Run0 的主要怪異之處在於它依賴 Polkit 進行身份驗證。在某些終端機中,Run0 可以在不同的顯示器上顯示其密碼提示。如果您使用終端多工器(例如 Tmux)來管理多個 shell 會話,這可能會成為問題。

顯示 Polkit 在多工終端機上提示 run0 請求的螢幕截圖。

同時,Sudo 最大的怪癖是它不允許您透過常規文字編輯器編輯 sudoers 檔案。相反,它要求您使用名為 Visudo 的程序,該程序會在 sudoers 文件上添加完整性檢查。雖然這使得編輯 sudoers 檔案更加安全,但對於只想管理 root 權限的普通使用者來說,這可能會變得不必要的複雜。

顯示 visudo 實用程式幫助螢幕的終端機。

獲勝者: Run0

原始碼大小

程式原始碼的總體大小可以很好地表明其當前的複雜程度。這對於權限提升程式很重要,因為程式碼複雜性可能會導致潛在的安全漏洞。

Run0 與其他權限提升應用程式的差異之一是它建構在 Systemd-run 之上。這不僅允許 Run0 利用 Systemd-run 的功能,而且還意味著程式本身不包含大量程式碼。因此,Run0 將來更容易審核潛在的安全性問題。

一個終端機突出顯示 Run0 手冊頁上描述它建立在 Systemd-run 之上的句子。

Sudo 是一個跨越多種文件和程式語言的大型軟體專案。雖然這種複雜性使 sudo 成為一個強大的權限升級應用程序,但這也意味著它具有巨大的潛在攻擊面。

顯示 sudo Github 儲存庫中的全部程式碼行的終端。

獲勝者: Run0

原始碼時代

在考慮權限升級程序的可靠性時,特定軟體專案的年齡也是一個因素。較新的項目通常充滿更多錯誤和問題,而較舊的項目往往更穩定。

Run0 是一個相對較新的程序,於 2024 年 6 月新增至 Systemd 中。目前,您只能在 Arch Linux 和 Fedora Rawhide 等前沿發行版上取得該應用程式。因此,Run0 更適合休閒和非關鍵任務的工作。

Sudo 是至今仍在開發的最古老的軟體專案之一。 sudo 擁有 30 多年的發展歷史,是一個高度成熟的程序,能夠處理不同的工作負載。這對於那些尋求可信賴的穩定權限升級程序的人來說非常理想。

獲勝者:須藤

Run0 與 Sudo:哪個應用程式獲勝

歸根結底,選擇正確的權限升級程序取決於您想要透過系統實現的目標:

  • 如果您正在尋找易於使用且簡單的權限升級應用程序,那麼 Run0 是一個不錯的選擇。其無配置設計和隔離根進程的方法相結合,非常適合尋找簡單的 Sudo 替代方案的臨時使用者。
  • 如果您想要一個可自訂且穩定的權限升級應用程序,那麼 Sudo 不會出錯。憑藉其數十年的開發歷史和豐富的功能,可以輕鬆地將 Sudo 塑造為您的自訂工作流程。

為您的電腦選擇正確的權限提升應用程式只是了解超級使用者如何在 Linux 中運作的第一步。深入了解機器的內部結構,探索 Su 與 Sudo 的不同之處。

圖片來源:Gabriel Heinzer,來自 Unsplash。所有修改和螢幕截圖均由 Ramces Red 進行。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *