RockyLinux9
•
•
By SystemArch_Alex
Rocky Linux 9 基礎教學 (24):Sudoers 權限委派與精確控制
最小權限原則的完美實踐
在 Linux 系統安全中,「最小權限原則 (Principle of Least Privilege)」是核心準則。我們不應該直接分享 Root 密碼,而是應該透過 sudo (superuser do) 機制,將特定的管理權限委派給普通使用者。Rocky Linux 9 透過 /etc/sudoers 檔案與 /etc/sudoers.d/ 目錄提供極其靈活的配置方式。
1. 使用 visudo 進行安全編輯
絕對不要直接使用 vi 編輯 /etc/sudoers!務必使用 visudo 指令,它會在儲存時檢查語法錯誤,防止因為一個分號寫錯而導致所有人都無法使用 sudo 的慘劇。
sudo visudo
2. Sudoers 語法結構解析
一條標準的 sudo 規則如下:使用者 主機=(代表身份) 指令路徑
hank ALL=(ALL) /usr/bin/dnf, /usr/bin/systemctl
這代表使用者 hank 可以在任何主機上,以任何人的身份執行 dnf 與 systemctl 指令。
3. 使用別名 (Alias) 簡化管理
當有多個使用者需要相同的權限時,使用別名可以大幅減少維護成本:
# 定義使用者別名
User_Alias DEVOPS = hank, alex, bob
# 定義指令別名
Cmnd_Alias WEB_TOOLS = /usr/bin/systemctl restart nginx, /usr/bin/nginx -t
# 套用規則
DEVOPS ALL=(root) WEB_TOOLS
4. 免密碼執行特定指令
對於某些自動化腳本,可能需要免密碼執行 sudo。雖然方便,但請務必限制在特定指令上:
# 允許 hank 免密碼重啟備份服務
hank ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart backup_service
5. 安全審核與日誌
所有的 sudo 操作預設都會記錄在 /var/log/secure 中。身為資深工程師,應定期檢查此檔案以監控是否有異常的權限提升行為:
sudo tail -f /var/log/secure | grep sudo
透過精確的 sudoers 配置,你可以在保障系統安全的同時,賦予團隊成員必要的作業能力,實現管理效率與資安防護的平衡。