跳到主要內容

深入解析 The Sudoers File:Linux 權限管理與最小權限原則實踐指南

深入解析 The Sudoers File:Linux 權限管理與最小權限原則實踐指南

在 Linux 系統中,the sudoers file(/etc/sudoers) 是控制特權執行的核心樞紐。錯誤的設定可能導致系統全面淪陷,正確的設定則能精準落實最小權限原則。

Sudoers 檔案的結構與語法

The sudoers file 的每一條規則遵循固定語法:WHO WHERE=(AS_WHOM) WHATWHO 指定使用者或群組,WHERE 限制主機範圍,AS_WHOM 定義切換身份,WHAT 則列舉允許的指令。此檔案嚴禁直接用文字編輯器修改,必須透過 visudo 指令操作,以確保語法驗證並防止設定錯誤鎖死系統。群組授權使用 %groupname 語法,模組化設定則建議置於 /etc/sudoers.d/ 目錄下分檔管理。

最小權限原則的實踐策略

最小權限原則(Least Privilege) 的核心是:只授予完成任務所需的最低權限。在 sudoers 設定中,應避免無限制的 ALL=(ALL:ALL) ALL 授權,改以精確指定指令路徑取代。善用 NOPASSWD 時須特別謹慎,建議搭配 Cmnd_Alias 將允許的指令群組化,提升可維護性。此外,Defaults 區段可設定 logfiletimestamp_timeout 等安全參數,強化稽核與會話控制。

# 定義允許的指令別名
Cmnd_Alias  WEBOPS = /usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginx

# 授予 deploy 群組僅執行 WEBOPS 指令,且需輸入密碼
%deploy  ALL=(root) WEBOPS

💡 重點整理

  • 唯一編輯入口:永遠使用 visudo 修改,語法錯誤將即時攔截。
  • 精準授權優於通用授權:以完整指令路徑取代 ALL,縮小攻擊面。
  • 模組化管理:將不同服務的授權拆分至 /etc/sudoers.d/,降低變更風險。
  • 稽核不可少:啟用 Defaults logfile 記錄所有 sudo 操作,滿足合規要求。

The sudoers file 是 Linux 安全架構的第一

留言