Sudo

為什麼 sudo 存在?為什麼不將特權系統訪問作為使用者權限處理?

  • March 4, 2020

請注意:我不是在問我知道答案的“sudo 做什麼”。

有很多 IT 系統沒有 sudo 的概念——相反,每個系統使用者要麼是“管理員使用者”(這意味著他在登錄後立即打開所有系統權限),或者他們是一些特權較低的“一般使用者”使用者”。

舉一個假設的例子。如果 Gmail 突然宣佈在您常用的 Gmail 密碼之上,您現在每次要發送或接收電子郵件時都必須輸入一個額外的“sudo”密碼,我會問“目的是什麼,因為我是否已經提供了訪問與此帳戶相關的所有權限的密碼?”

我問同樣的sudo問題。如果我已經提供了訪問系統的使用者名和密碼,為什麼系統不能將我的使用者帳戶辨識為具有管理員權限 - 無需輸入額外的 sudo 密碼?

這裡有許多概念,在安全領域很常見。

首先,我們總是希望使用者以“最少必要的權限”執行。這個想法,尤其是在企業環境中(我稍後會談到),是我們希望人們擁有使用電腦所需的權限,但僅此而已。“一切照舊”(BAU)不需要更改 /etc 中的文件;這是一個例外情況。

這導致下一部分;“特權升級”。一旦確定了 BAU 之外的東西,我們希望使用者意識到他們正在做一些更有特權的事情。因此,使用該sudo命令重新輸入您的密碼以確認您知道自己在做什麼。重新輸入密碼很重要,因為這意味著使用者有意識地批准了此操作。它也不一定是密碼;有些版本可能需要 2 因素身份驗證,這將擊鍵記錄您的會話並記錄它以供以後播放…

所以現在我們來到“企業”,我們來看看Windows XP Home Edition 的經驗教訓。這樣,您在安裝(或 OEM 的首次啟動)時創建的使用者自動擁有管理員權限。你總是以管理員身份執行。這意味著您犯的任何錯誤都可能會刪除關鍵文件。或者任何允許攻擊者自動執行操作的錯誤(例如在電子郵件中,或圖像渲染中,或……)都有管理員。這就是病毒和惡意軟體在舊版 Windows 中猖獗的原因之一。

因此,“BAU”和“特權”活動的分離延伸到企業之外,進入家庭,進入單使用者環境。值得注意的是,從 Vista 開始,甚至 Windows 也有了“你正在嘗試做一些特權的事情;重新輸入你的密碼”的概念。

總結:sudo只是一種切換安全上下文的方式;從您可以合理期望每天進行的活動(“閱讀電子郵件”、“創建文件”、“瀏覽網路”)和被視為特權的事情(“創建新使用者”、“更改系統配置”、“刪除其他使用者擁有的文件’…)。

對於大多數家庭使用者來說,只需“重新輸入密碼”就足夠了。對於企業來說,事情會變得複雜得多;有關一些問題的範例,請參見https://www.sweharris.org/post/2018-08-26-minimal-sudo/ 。

編輯添加:

我還應該指出,Unix 也有“管理員使用者”的概念。這是“根”帳戶。在企業環境中,我們不喜歡人們使用它,因為我們不知道 Tom、Dick 或 Harry 是否使用 root 帳戶進行更改。 sudo是一種允許人們以可審計的最低權限方式提升權限的方法。Tom 可以執行sudo cat和讀取任何文件,但不能重新啟動機器;迪克和哈利可以sudo reboot重啟機器但不能讀取受保護的文件。

通過這種方式,可以實現分配角色sudo所需的最小權限。這是一個關鍵的安全要求。

引用自:https://unix.stackexchange.com/questions/470157