Security

哪個更安全?sudo dnf 更新或 su - ;dnf更新

  • April 11, 2020

這樣做是否更安全:

  1. $ sudo dnf update $$ enter user password $$

或者

$ su - [enter root password]

dnf update



我一直認為它們是完全相同的,因為 sudo 利用 setuid-root,所以作為 sudo 的第一個 arg 執行的程序使用 sudo 的有效 ID 執行,即 root。


**我想我的問題是:** sudo 是否最終會將其有效 ID 放到普通使用者的 ID 上?那麼在這種情況下,上面的數字 1 將是一個更安全的選擇,因為如果執行 sudo 的程序被攻擊者破壞,那麼攻擊者有可能不是以 root 身份執行,因為權限已經被刪除了?

第一個命令將(可能)需要您的正確密碼,dnf update以 root 身份執行,然後退出:

$ sudo dnf update [enter user password]

第二個命令將需要 root 的密碼,然後啟動一個 root shell。在那個 shell 中你執行dnf update

$ su - [enter root password]
# dnf update

你並沒有真正比較喜歡。您可以比較這兩個命令,這兩個命令都會啟動一個根 shell,您可以在其中執行(至少)該命令dnf update

sudo -s
dnf update

su -
dnf update

或者你可以比較這兩個命令,這兩個命令都啟動一個 root 特權實例,dnf update然後退出到呼叫者的 shell

sudo dnf update

su root -c 'dnf update'

我認為您實際上要問的是,最好是呼叫具有 root 權限的單個命令,還是啟動一個具有 root 權限的 shell 來執行一個或多個命令。

  • 如果dnf功能或其下載以某種方式受到損害,那麼它的執行方式並不重要,問題在於它完全可以執行
  • 如果您談論的是破壞您的系統,那麼它歸結為使用者密碼 ( sudo) 與 root 密碼 ( su)的安全性
  • 如果您正在考慮是否可以信任 user ,那麼是否獲得執行多個命令的 root shell 或一次執行一個命令的 root shell 並不重要;問題是命令可以以root身份執行

我個人根據需要混合和匹配我的用法。我很少使用su,但我確實sudo {command....}用於快速一次性或sudo -s需要執行多個命令的短會話(例如 Debian 包管理工具,apt-get update後跟apt-get upgrade)。

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