Security
哪個更安全?sudo dnf 更新或 su - ;dnf更新
這樣做是否更安全:
$ 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
然後退出到呼叫者的 shellsudo 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
)。