| 123456789101112131415161718192021222324252627282930 |
- #!/bin/bash
- # 配置 sudoers 允许 PlateRecApp 无密码重启 frpc 服务
- # 用法: sudo bash setup_frpc_sudoers.sh [运行用户名]
- # 如果不指定用户名,自动检测当前用户
- RUN_USER="${1:-$(whoami)}"
- SUDOERS_FILE="/etc/sudoers.d/platerec-frpc"
- echo "配置 frpc 服务管理权限 for user: $RUN_USER"
- cat > "$SUDOERS_FILE" << EOF
- # PlateRecApp Web 管理 frpc 服务所需权限
- # 允许无密码执行 systemctl 操作 frpc 服务
- $RUN_USER ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart frpc
- $RUN_USER ALL=(ALL) NOPASSWD: /usr/bin/systemctl is-active frpc
- $RUN_USER ALL=(ALL) NOPASSWD: /usr/bin/systemctl status frpc
- $RUN_USER ALL=(ALL) NOPASSWD: /usr/bin/systemctl reload frpc
- EOF
- chmod 440 "$SUDOERS_FILE"
- # 验证 sudoers 语法
- if visudo -cf "$SUDOERS_FILE"; then
- echo "✅ sudoers 配置成功: $SUDOERS_FILE"
- echo "用户 $RUN_USER 现在可以无密码重启 frpc 服务"
- else
- echo "❌ sudoers 语法错误,已删除"
- rm -f "$SUDOERS_FILE"
- exit 1
- fi
|