# AWOOOI L4 自動化代理人最小權限 sudoers (ADR-090)
# 建立時間: 2026-04-18 台北時區
# 建立者: ogt + Claude Opus 4.7 (1M)
#
# 安裝位置: /etc/sudoers.d/awoooi-wrapper
# 安裝權限: root:root 0440
# 安裝前驗證: sudo visudo -c -f /path/to/this/file
#
# 設計原則:
#   - 以 command path 精確指定,不開 tee / bash / sh 這類 generic shell
#   - /etc/hosts 經 awoooi-hosts-add wrapper 白名單限制主機名
#   - docker kill 只允許 SIGHUP (reload signal),不允許 SIGTERM/KILL
#   - 不放 systemctl / apt / reboot / shutdown 任何系統級指令

# 1. /etc/hosts 白名單式寫入 (wrapper 自己驗證主機名)
wooo ALL=(root) NOPASSWD: /usr/local/bin/awoooi-hosts-add

# 2. Prometheus / Blackbox / Alertmanager config reload (SIGHUP only)
wooo ALL=(root) NOPASSWD: /usr/bin/docker kill -s SIGHUP prometheus
wooo ALL=(root) NOPASSWD: /usr/bin/docker kill -s SIGHUP blackbox-exporter
wooo ALL=(root) NOPASSWD: /usr/bin/docker kill -s SIGHUP alertmanager

# 3. Prometheus / Alertmanager config 檔驗證 (只讀,防禦性)
wooo ALL=(root) NOPASSWD: /usr/bin/docker exec prometheus promtool check config /etc/prometheus/prometheus.yml
wooo ALL=(root) NOPASSWD: /usr/bin/docker exec alertmanager amtool check-config /etc/alertmanager/alertmanager.yml

# 註: 未來新增命令必經 git commit 的 PR review,不可直接手動加
