Major documentation improvements and restructuring for better maintainability and navigation. ## Structural Changes ### New Documentation Organization - Move all documentation to DOCS/ directory for better organization - Create DOCS/archive/ for historical documents - Move deployment scripts to secubox-tools/ directory ### Archived Documents - COMPLETION_REPORT.md → archive/ (project milestone) - MODULE-ENABLE-DISABLE-DESIGN.md → archive/ (feature implemented) - BUILD_ISSUES.md → archive/ (issues resolved) - Add archive/README.md with archiving policy and document index ## Documentation Enhancements ### Version Standardization - Add version headers to CLAUDE.md (v1.0.0) - Add version headers to BUILD_ISSUES.md (v1.0.0) - Standardize date format to YYYY-MM-DD across all docs ### Cross-References & Navigation - Add "See Also" sections to PERMISSIONS-GUIDE.md - Add "See Also" sections to VALIDATION-GUIDE.md - Link quick references to detailed guides - Improve documentation discoverability ### Architecture Diagrams (Mermaid) Add 3 professional diagrams to DEVELOPMENT-GUIDELINES.md: 1. **System Architecture Diagram** (§2) - Complete data flow: Browser → LuCI → RPCD → ubus → System - Color-coded components by layer - Shows JavaScript, RPC, RPCD daemon, UCI, system services 2. **Deployment Workflow Diagram** (§9) - Step-by-step deployment process with validation checkpoints - Error recovery paths for common issues (403, 404, -32000) - Local validation, file transfer, permission fixes, service restarts 3. **Component Hierarchy Diagram** (§1) - Standard page structure and CSS class relationships - Page → Header → Stats → Content → Cards → Buttons - Shows design system component organization ## New Files ### TODO-ANALYSE.md - Comprehensive documentation improvement roadmap - Tasks categorized: Immediate, Short-term, Long-term, Optional - Progress tracking with acceptance criteria - Covers testing, security, performance guides - Documentation automation plans ## Benefits ✅ Cleaner project structure (docs in DOCS/, tools in secubox-tools/) ✅ Better documentation navigation with cross-references ✅ Visual understanding through architecture diagrams ✅ Historical documents archived but accessible ✅ Standardized versioning across all documentation ✅ Clear roadmap for future documentation improvements 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
6.3 KiB
OpenWrt Package Permissions Guide
Version: 0.3.1
Last Updated: 2025-12-28
Status: Active
Author: CyberMind
📚 This is a quick reference guide. For complete deployment procedures, see DEVELOPMENT-GUIDELINES.md §9
Related Documentation:
- Complete guide: DEVELOPMENT-GUIDELINES.md
- Quick reference: QUICK-START.md
- Validation tools: VALIDATION-GUIDE.md
- Automation briefing: CODEX.md
See Also
- Deployment Procedures: DEVELOPMENT-GUIDELINES.md §9
- Quick Rules & Commands: QUICK-START.md
- Validation Checklist: VALIDATION-GUIDE.md
- Automation Standards: CODEX.md
🎯 Objectif
Assurer que tous les fichiers des packages SecuBox ont les bonnes permissions dès l'installation, sans nécessiter de correction manuelle.
📋 Permissions Requises
Fichiers Exécutables (755)
Ces fichiers DOIVENT avoir les permissions d'exécution:
-rwxr-xr-x (755)
Liste des fichiers:
/usr/libexec/rpcd/luci.*- Scripts RPCD backend/usr/libexec/secubox/*.sh- Scripts utilitaires/etc/init.d/*- Scripts d'initialisation/etc/uci-defaults/*- Scripts de configuration initiale
Fichiers Non-Exécutables (644)
Ces fichiers NE DOIVENT PAS être exécutables:
-rw-r--r-- (644)
Liste des fichiers:
/www/luci-static/resources/**/*.js- Fichiers JavaScript/www/luci-static/resources/**/*.css- Fichiers CSS/usr/share/rpcd/acl.d/*.json- Permissions ACL/usr/share/luci/menu.d/*.json- Définitions de menu/etc/config/*- Fichiers de configuration UCI
🔧 Configuration dans le Makefile
Méthode Recommandée: PKG_FILE_MODES
OpenWrt supporte la variable PKG_FILE_MODES pour définir les permissions des fichiers lors de l'installation du package.
Syntaxe:
PKG_FILE_MODES:=/path/to/file:permissions
Exemple complet:
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-example
PKG_VERSION:=0.3.1
PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0
PKG_MAINTAINER:=CyberMind <contact@cybermind.fr>
LUCI_TITLE:=LuCI - Example Module
LUCI_DESCRIPTION:=Example SecuBox module
LUCI_DEPENDS:=+luci-base +rpcd
LUCI_PKGARCH:=all
# File permissions (RPCD scripts must be executable)
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.example:755
include $(TOPDIR)/feeds/luci/luci.mk
# call BuildPackage - OpenWrt buildroot signature
Plusieurs Fichiers Exécutables
Si vous avez plusieurs fichiers exécutables:
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.example:755 \
/usr/libexec/example/helper.sh:755 \
/etc/init.d/example:755
Note: Utilisez \ pour continuer sur la ligne suivante.
📦 Modules SecuBox avec PKG_FILE_MODES
luci-app-secubox
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.secubox:755 \
/usr/libexec/secubox/fix-permissions.sh:755
luci-app-system-hub
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.system-hub:755
luci-app-network-modes
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.network-modes:755
🧪 Vérification
Lors du Développement
Avant de déployer un package, vérifiez les permissions:
# Vérifier les scripts RPCD
ls -l root/usr/libexec/rpcd/luci.*
# Vérifier les scripts helper
ls -l root/usr/libexec/*/
# Vérifier les fichiers web
find root/www -type f -name "*.js" -o -name "*.css" | xargs ls -l
Après Installation du Package
Vérifiez que les permissions sont correctes sur le routeur:
# RPCD scripts doivent être 755
ls -l /usr/libexec/rpcd/luci.*
# Fichiers web doivent être 644
ls -l /www/luci-static/resources/secubox/*.js
ls -l /www/luci-static/resources/secubox/*.css
🛠️ Script de Vérification Automatique
Un script de vérification est inclus dans luci-app-secubox:
# Vérifier et corriger toutes les permissions
/usr/libexec/secubox/fix-permissions.sh
# Via ubus
ubus call luci.secubox fix_permissions
# Via l'interface web
Dashboard → Quick Actions → "🔧 Fix Perms"
⚠️ Erreurs Communes
1. RPCD Script Non-Exécutable
Symptôme:
ubus call luci.example status
# Command failed: Permission denied
Cause: Le script RPCD n'a pas les permissions 755
Solution:
# Ajouter dans le Makefile
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.example:755
2. Fichiers Web Exécutables
Symptôme: Fichiers JavaScript/CSS avec permissions 755
Cause: Mauvaise manipulation ou script mal configuré
Solution: Les fichiers web sont 644 par défaut avec LuCI, pas besoin de les spécifier dans PKG_FILE_MODES
3. Script Helper Non-Exécutable
Symptôme:
/usr/libexec/example/helper.sh
# -bash: /usr/libexec/example/helper.sh: Permission denied
Solution:
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.example:755 \
/usr/libexec/example/helper.sh:755
📚 Références
- LuCI Build System:
$(TOPDIR)/feeds/luci/luci.mk - OpenWrt Package Build: https://openwrt.org/docs/guide-developer/packages
- PKG_FILE_MODES: https://openwrt.org/docs/guide-developer/build-system/use-buildsystem#build_system_variables
✅ Checklist Pré-Déploiement
Avant de créer un package .ipk ou .apk:
- Tous les scripts RPCD ont 755 dans PKG_FILE_MODES
- Tous les scripts helper ont 755 dans PKG_FILE_MODES
- Les fichiers web (JS/CSS) ne sont PAS dans PKG_FILE_MODES (ils sont 644 par défaut)
- Les fichiers ACL/Menu ne sont PAS dans PKG_FILE_MODES (ils sont 644 par défaut)
- Le Makefile utilise
include $(TOPDIR)/feeds/luci/luci.mk - PKG_FILE_MODES est défini AVANT le
include $(TOPDIR)/feeds/luci/luci.mk
🔄 Migration des Modules Existants
Pour ajouter PKG_FILE_MODES à un module existant:
cd luci-app-mymodule
# Éditer le Makefile
vi Makefile
# Ajouter avant 'include $(TOPDIR)/feeds/luci/luci.mk'
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.mymodule:755
# Reconstruire le package
make package/luci-app-mymodule/clean
make package/luci-app-mymodule/compile
Maintainer: CyberMind contact@cybermind.fr License: Apache-2.0