Implement three-tier permission management across all SecuBox modules: **1. Package-Level Permissions (PKG_FILE_MODES)** - Add PKG_FILE_MODES to all 15 module Makefiles - RPCD scripts: 755 (executable) - CSS/JS/JSON files: 644 (default, no config needed) - Ensures correct permissions at installation time **2. Runtime Permission Fix** - New script: /usr/libexec/secubox/fix-permissions.sh - RPCD method: luci.secubox fix_permissions - UI control: "🔧 Fix Perms" button in Quick Actions - Fixes all permissions and restarts services **3. Automation & Documentation** - secubox-tools/add-pkg-file-modes.sh: Auto-configure PKG_FILE_MODES - PERMISSIONS-GUIDE.md: Comprehensive permissions guide - MODULE-ENABLE-DISABLE-DESIGN.md: Enable/disable system design doc - Updated Makefile template with PKG_FILE_MODES pattern **Modules Updated:** - luci-app-auth-guardian - luci-app-bandwidth-manager - luci-app-cdn-cache - luci-app-client-guardian - luci-app-crowdsec-dashboard - luci-app-ksm-manager - luci-app-media-flow - luci-app-netdata-dashboard - luci-app-netifyd-dashboard - luci-app-network-modes - luci-app-secubox (+ fix-permissions.sh script) - luci-app-system-hub - luci-app-traffic-shaper - luci-app-vhost-manager - luci-app-wireguard-dashboard **Benefits:** - No more manual permission fixes after installation - Users can fix permissions from UI without SSH access - Proper OpenWrt package management compliance - Automated detection and configuration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
81 lines
2.8 KiB
Makefile
81 lines
2.8 KiB
Makefile
# Template Makefile for SecuBox LuCI Applications
|
|
# ================================================
|
|
# Copy this template and customize for each package
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
# Package metadata
|
|
PKG_NAME:=luci-app-PACKAGE_NAME
|
|
PKG_VERSION:=2.0.0
|
|
PKG_RELEASE:=1
|
|
PKG_LICENSE:=Apache-2.0
|
|
PKG_MAINTAINER:=CyberMind <contact@cybermind.fr>
|
|
|
|
# LuCI specific
|
|
LUCI_TITLE:=LuCI - Package Description
|
|
LUCI_DESCRIPTION:=Detailed description of what this package does
|
|
LUCI_DEPENDS:=+luci-base +rpcd
|
|
LUCI_PKGARCH:=all
|
|
|
|
# File permissions (CRITICAL: RPCD scripts MUST be executable)
|
|
# CSS/JS files are 644 by default (correct)
|
|
# Only specify files that need non-default permissions (755 for executables)
|
|
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.PACKAGE_NAME:755
|
|
|
|
# Include LuCI build system
|
|
include $(TOPDIR)/feeds/luci/luci.mk
|
|
|
|
# Call BuildPackage - this is handled by luci.mk
|
|
# No need for explicit Package/xxx/install when using luci.mk
|
|
|
|
# === END OF TEMPLATE ===
|
|
|
|
# ================================================
|
|
# NOTES FOR DEVELOPERS
|
|
# ================================================
|
|
#
|
|
# Directory structure expected by luci.mk:
|
|
#
|
|
# luci-app-mypackage/
|
|
# ├── Makefile # This file
|
|
# ├── htdocs/
|
|
# │ └── luci-static/
|
|
# │ └── resources/
|
|
# │ └── view/
|
|
# │ └── mypackage/
|
|
# │ └── main.js # LuCI JavaScript view
|
|
# └── root/
|
|
# ├── etc/
|
|
# │ ├── config/
|
|
# │ │ └── mypackage # UCI config file
|
|
# │ ├── init.d/
|
|
# │ │ └── mypackage # Init script (executable)
|
|
# │ └── uci-defaults/
|
|
# │ └── 99-mypackage # First-run setup (executable)
|
|
# └── usr/
|
|
# ├── libexec/
|
|
# │ └── rpcd/
|
|
# │ └── mypackage # RPCD backend script (executable)
|
|
# └── share/
|
|
# ├── luci/
|
|
# │ └── menu.d/
|
|
# │ └── luci-app-mypackage.json # Menu entry
|
|
# └── rpcd/
|
|
# └── acl.d/
|
|
# └── luci-app-mypackage.json # ACL permissions
|
|
#
|
|
# ================================================
|
|
# COMMON LUCI_DEPENDS OPTIONS
|
|
# ================================================
|
|
#
|
|
# +luci-base - Required for all LuCI apps
|
|
# +luci-compat - Legacy API compatibility
|
|
# +luci-lib-jsonc - JSON-C library
|
|
# +rpcd - RPC daemon (for backend scripts)
|
|
# +curl - HTTP client
|
|
# +jq - JSON processor
|
|
# +wireguard-tools - WireGuard utilities
|
|
# +qrencode - QR code generator
|
|
#
|
|
# ================================================
|