`sudo` 預設授予完整 root 權限,生產環境應遵循**最小權限原則**:僅允許特定用戶/組執行特定命令,且**免密僅限極少數自動化腳本/監控項目**。

# 用戶別名
User_Alias ADMINS = alice, bob, charlie
# 命令別名 (僅限系統管理命令)
Cmnd_Alias STORAGE = /sbin/mount, /sbin/umount, /sbin/mount.cifs, /sbin/mount.nfs
Cmnd_Alias NETWORK = /sbin/ifconfig, /sbin/ip, /usr/bin/ss, /usr/bin/nmap
Cmnd_Alias SERVICE = /bin/systemctl, /usr/sbin/service
# 組授權 (輪到組名加 %)
%operators ALL=(ALL) NOPASSWD: STORAGE
%netadmins ALL=(ALL) NETWORK
%devops ALL=(ALL) SERVICE
# 主機別名 (多機器共用 sudoers 時)
Host_Alias WEBSRV = web01, web02, web03
ADMINS WEBSRV = (root) NOPASSWD: /usr/bin/systemctl restart nginx
Defaults env_reset # 重置環境變數
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" # 固定 PATH 防劫持
Defaults timestamp_timeout=15 # 密碼快取 15 分鐘 (預設 5 分鐘,可依政策調整)
Defaults logfile="/var/log/sudo.log" # 獨立審計日誌
Defaults log_input, log_output # 記錄完整輸入/輸出 (高安全環境)
Defaults requiretty # 強制需 tty (防 CGI/腳本濫用,可能影響自動化)
Defaults !lecture # 關閉每次講話 (可選)
Defaults lecture_file="/etc/sudo_lecture" # 自定義警告訊息
精細配置 sudo 者,方能在便利與安全間取得平衡,構建可審計、可控制的特權存取體系。