Add complete French (fr) and Chinese (zh) translations for all documentation: - Root files: README, CHANGELOG, SECURITY, BETA-RELEASE - docs/: All 16 core documentation files - DOCS/: All 19 deep-dive documents including embedded/ and archive/ - package/secubox/: All 123+ package READMEs - Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/ Total: 346 translation files created Each file includes language switcher links for easy navigation between English, French, and Chinese versions. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
6.4 KiB
Guide des Permissions de Packages OpenWrt
🌐 Langues : English | Français | 中文
Version : 0.3.1 Dernière mise à jour : 2025-12-28 Statut : Actif Auteur : CyberMind
Ce document est un guide de référence rapide. Pour les procédures de déploiement complètes, voir DEVELOPMENT-GUIDELINES.md §9
Documentation connexe :
- Guide complet : DEVELOPMENT-GUIDELINES.md
- Référence rapide : QUICK-START.md
- Outils de validation : VALIDATION-GUIDE.md
- Briefing automatisation : CODEX.md
Voir Aussi
- Procédures de déploiement : DEVELOPMENT-GUIDELINES.md §9
- Règles & Commandes rapides : QUICK-START.md
- Checklist de validation : VALIDATION-GUIDE.md
- Standards d'automatisation : 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
# Permissions des fichiers (les scripts RPCD doivent être exécutables)
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 :
# Les scripts RPCD doivent être 755
ls -l /usr/libexec/rpcd/luci.*
# Les 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. Script RPCD 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
- Système de build LuCI :
$(TOPDIR)/feeds/luci/luci.mk - Build de packages OpenWrt : 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
Mainteneur : CyberMind contact@cybermind.fr Licence : Apache-2.0