# Rainbow sudo 白名单配置
# 安装:sudo cp deploy/rainbow.sudoers /etc/sudoers.d/rainbow
# 权限:sudo chmod 440 /etc/sudoers.d/rainbow
#
# Rainbow 通过 sudo 执行网络管理命令,此文件限定可执行的命令范围
# 禁止执行的命令会自动被 ShellExecutor 拒绝,防止命令注入
# 用户 rainbow 运行 Web 进程
rainbow ALL=(root) NOPASSWD: /usr/sbin/pppoe-start, /usr/sbin/pppoe-stop, /usr/sbin/pppoe-status
rainbow ALL=(root) NOPASSWD: /usr/bin/pon, /usr/bin/poff
# dnsmasq 管理
rainbow ALL=(root) NOPASSWD: /usr/bin/systemctl restart dnsmasq, /usr/bin/systemctl reload dnsmasq, /usr/bin/systemctl status dnsmasq
# iptables / ip6tables 防火墙管理
rainbow ALL=(root) NOPASSWD: /usr/sbin/iptables *, /usr/sbin/ip6tables *
rainbow ALL=(root) NOPASSWD: /usr/sbin/netfilter-persistent *
# iproute2 路由和接口管理
rainbow ALL=(root) NOPASSWD: /usr/sbin/ip *
rainbow ALL=(root) NOPASSWD: /usr/bin/ip *
# VPN 管理
rainbow ALL=(root) NOPASSWD: /usr/bin/wg, /usr/bin/wg-quick
rainbow ALL=(root) NOPASSWD: /usr/sbin/openvpn, /usr/bin/systemctl *openvpn*
# 网络状态采集(只读命令,无需 sudo,但部分系统需要提权读取 /proc)
rainbow ALL=(root) NOPASSWD: /usr/bin/cat /proc/net/*, /usr/bin/cat /proc/stat, /usr/bin/cat /proc/meminfo
rainbow ALL=(root) NOPASSWD: /usr/sbin/conntrack *
|