一、Sudo和Root的區(qū)別
最小權(quán)限原則是一種信息和計(jì)算機(jī)安全概念,它認(rèn)為授予程序和用戶執(zhí)行任務(wù)所需的最少或最低限度的權(quán)限。
以 root 用戶登錄后,輸入到終端的每一條命令都以系統(tǒng)較高權(quán)限運(yùn)行,違反了最小權(quán)限原則。像 rm 這樣的簡(jiǎn)單命令可用于刪除核心根目錄或文件,而不會(huì)在意外時(shí)提示用戶。例如,如果您嘗試使用以下命令刪除 /etc 之類的根目錄:
$ rm -rf /etc
當(dāng)您以普通用戶身份登錄時(shí),您將被拒絕許可。當(dāng)以 root 身份登錄時(shí),不會(huì)顯示任何提示,并且整個(gè)文件夾將被刪除 – 這很可能會(huì)破壞您的系統(tǒng),因?yàn)檫\(yùn)行系統(tǒng)所需的特殊配置文件存儲(chǔ)在 /etc 目錄中。您也可能最終錯(cuò)誤地格式化磁盤,并且系統(tǒng)不會(huì)提示您。
此缺陷還擴(kuò)展到以 root 身份運(yùn)行代碼或應(yīng)用程序;應(yīng)用程序中的一個(gè)小錯(cuò)誤可能會(huì)刪除一些系統(tǒng)文件,因?yàn)樵搼?yīng)用程序是在較高權(quán)限下運(yùn)行的。
Sudo 提供細(xì)粒度的訪問控制。它僅向需要它的特定程序授予提升的權(quán)限。您知道哪個(gè)程序以提升的權(quán)限運(yùn)行,而不是使用 root shell(以 root 權(quán)限運(yùn)行每個(gè)命令)。
Sudo 也可以配置為以另一個(gè)用戶身份運(yùn)行命令,指定允許哪些用戶和組使用 sudo 運(yùn)行命令,或者通過編輯 sudoers 文件設(shè)置以 root 權(quán)限運(yùn)行程序的超時(shí)。
因此,不建議使用 root shell 運(yùn)行命令,因?yàn)槟茐南到y(tǒng)的機(jī)會(huì)要高得多。如果您需要更高權(quán)限或 root 權(quán)限來運(yùn)行命令,請(qǐng)使用 sudo 確保只有該命令以 root 權(quán)限運(yùn)行。
延伸閱讀:
二、什么是 Sudo
sudo?(superuser do) 命令是一個(gè)命令行實(shí)用程序,它允許用戶以 root 或其他用戶身份執(zhí)行命令。它提供了一種有效的方式來授予某些用戶適當(dāng)?shù)臋?quán)限以使用特定的系統(tǒng)命令或以 root 用戶身份運(yùn)行腳本。
雖然有點(diǎn)類似于?su?命令,但?sudo?的不同之處在于它默認(rèn)需要用戶的密碼進(jìn)行身份驗(yàn)證,而不是 su 需要的目標(biāo)用戶的密碼。Sudo 也不會(huì)產(chǎn)生 root shell;相反,它以提升的權(quán)限運(yùn)行程序或命令,不像 su,它產(chǎn)生一個(gè) root shell。
使用 sudo,系統(tǒng)管理員可以執(zhí)行以下操作:
授予用戶或用戶組以提升或 root 權(quán)限運(yùn)行某些命令的能力。查看每個(gè)使用 sudo 的用戶的用戶 ID 的日志。控制用戶可以在主機(jī)系統(tǒng)上使用什么命令。