在傳統的 Unix 及 Linux 系統上,通常在全新安裝的系統上,第一個用戶會是 root 這個帳號,接著下來系統一般都會建議,利用 root 帳號來創建另一個一般用戶以用來進行日常的系統管理工作,利用一般用戶來管理系統是一種自我保護的機制,有時候會在網路上看見有朋友不小心直接用 root 帳號誤刪了整個根目錄的檔案,或是操作了一些不可逆的系統指令而導致整個晚上都在機房中渡過, 但若只使用一般帳號,則可大符降低誤操作的風險,當然了,做為系統真正的管理者,你可以隨時利用 su 的指令切換成最高權限的管理帳號(root)並執行任何想做的管理工作,幾 10 年來運作的也很順利。
不過後來出現的 sudo 指令,一開始感覺和 su 指令很像,似乎是多餘的指令,但其實 sudo 的指令可以提供更靈活的應用,所以現在許多新版 Linux 系統一開始就不允許採用 root 遠端登入系統,改採建立一個一般帳戶並給予 sudo 的權限,以下說明使用 sudo 所帶來的 5 個好處:
1、避免 root 帳號成為直接暴力攻擊的對象
在還未關掉 root 的遠端登入權限時,通常要設定 fail2ban、firewall 或是 SSH 金鑰的連續組合技來提高主機的安全性並阻擋不必要的訪問,而且攻擊者的目標很明確:root 密碼,在關掉 root 帳號登入的權限之後,這個目標會變的較模糊,攻擊者就不會直接暴力破解 root 的密碼了。
2、增加取得 root 權限的困難度
攻擊者最終還是得以取得系統 root 權限為目標,所以停用 root 的話,會讓這個過程變的更困難,你得先取得具有 sudo 權限的帳號資訊,再透過 sudo 開放的指令漏洞取得所有的 root 權限,除非你的系統從安裝以來就沒有更新過,否則要透過已知的漏洞取得 root 權限沒有那麼簡單。
3、針對一般帳號設定功能性權限
如果使用傳統的 su 指令,會直接切換成完成的 root 權限,這和直接使用 root 帳號來管理系統沒有太大差別,良好的 sudo 設定可以把各個一般帳號設定於不同的管理用途,這也有利於分層授權,也不需交出可管理全部系統權限的帳號密碼給不同的管理人員。
4、提供時間限制
使用 sudo 執行命令時,經過身份驗證的一般用戶的權限會提升 5 分鐘。在此期間,他們可以執行您授予他們運行權限的一個或多個命令。5分鐘後,認證暫存狀態會被清空,下次使用 sudo 會再次提示輸入密碼。超時可防止用戶稍後意外執行該操作(例如,粗心地搜索您的 shell 歷史記錄或多次按下向上箭頭)。
5、可留下歷程記錄
當您需要管理任務的日誌時,sudo 提供了一個完整的日誌記錄系統,因此您可以從一個集中位置查看活動,甚至在發生重大事件時獲得警報。
全文來源:https://opensource.com/article/22/5/use-sudo-linux
幫忙分享、宣傳~或者對開源資訊有興趣的朋友,可以加入「開放原始碼應用社團」哦!社團連結:https://www.facebook.com/groups/429919805187929