diff --git a/install.sh b/install.sh index cea2060..ff30581 100755 --- a/install.sh +++ b/install.sh @@ -187,7 +187,7 @@ setfacl -R -d -m u:www-data:rwx,g:asterisk:rwx /etc/asterisk /var/lib/asterisk/s # Droits sudoers pour l'interface web (www-data) cat << 'EOF' > /etc/sudoers.d/nexus-pbx # Privilèges spécifiques NexusPBX pour l'utilisateur Web www-data -www-data ALL=(ALL) NOPASSWD: /usr/sbin/asterisk, /usr/sbin/nginx, /usr/bin/systemctl, /usr/bin/fail2ban-client, /bin/fail2ban-client, /var/www/nexus-pbx/scripts/nexus-firewall, /usr/bin/certbot, /usr/sbin/nft, /usr/sbin/iptables +www-data ALL=(ALL) NOPASSWD: /usr/sbin/asterisk, /usr/sbin/nginx, /usr/bin/systemctl, /usr/bin/fail2ban-client, /bin/fail2ban-client, /var/www/nexus-pbx/scripts/nexus-firewall, /usr/bin/certbot, /usr/sbin/nft, /usr/sbin/iptables, /var/www/nexus-pbx/scripts/update.sh, /usr/local/bin/nexus-update EOF chmod 0440 /etc/sudoers.d/nexus-pbx @@ -425,9 +425,10 @@ chmod 0644 /etc/cron.d/nexus-backup touch /var/log/nexus_backup.log && chown www-data:asterisk /var/log/nexus_backup.log && chmod 664 /var/log/nexus_backup.log # CLI symlinks -chmod +x "$TARGET_DIR/scripts/nexus-firewall" "$TARGET_DIR/scripts/nexus-banner.sh" +chmod +x "$TARGET_DIR/scripts/nexus-firewall" "$TARGET_DIR/scripts/nexus-banner.sh" "$TARGET_DIR/scripts/update.sh" ln -sf "$TARGET_DIR/scripts/nexus-firewall" /usr/local/bin/nexus-firewall ln -sf "$TARGET_DIR/scripts/nexus-banner.sh" /usr/local/bin/nexus-banner +ln -sf "$TARGET_DIR/scripts/update.sh" /usr/local/bin/nexus-update # Bannière interactive lors de chaque connexion terminal (SSH / Console) cat << 'EOF' > /etc/profile.d/nexus-motd.sh diff --git a/scripts/fix.sh b/scripts/fix.sh index 3115584..13764c9 100755 --- a/scripts/fix.sh +++ b/scripts/fix.sh @@ -85,7 +85,7 @@ chmod 0664 /etc/fail2ban/jail.local /etc/nginx/sites-available/nexus-pbx 2>/dev/ setfacl -m u:www-data:rw /etc/fail2ban/jail.local /etc/nginx/sites-available/nexus-pbx 2>/dev/null || true cat << 'EOF' > /etc/sudoers.d/nexus-pbx -www-data ALL=(ALL) NOPASSWD: /usr/sbin/asterisk, /usr/sbin/nginx, /usr/bin/systemctl, /usr/bin/fail2ban-client, /bin/fail2ban-client, /var/www/nexus-pbx/scripts/nexus-firewall, /usr/bin/certbot, /usr/sbin/nft, /usr/sbin/iptables +www-data ALL=(ALL) NOPASSWD: /usr/sbin/asterisk, /usr/sbin/nginx, /usr/bin/systemctl, /usr/bin/fail2ban-client, /bin/fail2ban-client, /var/www/nexus-pbx/scripts/nexus-firewall, /usr/bin/certbot, /usr/sbin/nft, /usr/sbin/iptables, /var/www/nexus-pbx/scripts/update.sh, /usr/local/bin/nexus-update EOF chmod 0440 /etc/sudoers.d/nexus-pbx diff --git a/scripts/update.sh b/scripts/update.sh index 1e2efb9..3bfd9b9 100755 --- a/scripts/update.sh +++ b/scripts/update.sh @@ -95,6 +95,16 @@ echo -e "${C_GRAY}[2/6] Déploiement des nouveaux fichiers de code...${C_RESET}" git reset --hard "${GIT_REMOTE}/${GIT_BRANCH}" chown -R www-data:asterisk "$APP_DIR" chmod 2775 "$APP_DIR/storage" "$APP_DIR/storage/backups" "$APP_DIR/storage/sounds" 2>/dev/null || true +chmod +x "$APP_DIR/scripts/update.sh" "$APP_DIR/scripts/nexus-firewall" "$APP_DIR/scripts/nexus-banner.sh" 2>/dev/null || true +ln -sf "$APP_DIR/scripts/update.sh" /usr/local/bin/nexus-update +ln -sf "$APP_DIR/scripts/nexus-firewall" /usr/local/bin/nexus-firewall +ln -sf "$APP_DIR/scripts/nexus-banner.sh" /usr/local/bin/nexus-banner + +# Mise à jour des privilèges sudoers (www-data) +cat << 'EOF_SUDO' > /etc/sudoers.d/nexus-pbx +www-data ALL=(ALL) NOPASSWD: /usr/sbin/asterisk, /usr/sbin/nginx, /usr/bin/systemctl, /usr/bin/fail2ban-client, /bin/fail2ban-client, /var/www/nexus-pbx/scripts/nexus-firewall, /usr/bin/certbot, /usr/sbin/nft, /usr/sbin/iptables, /var/www/nexus-pbx/scripts/update.sh, /usr/local/bin/nexus-update +EOF_SUDO +chmod 0440 /etc/sudoers.d/nexus-pbx # 3. Vérification des dépendances Debian echo -e "${C_GRAY}[3/6] Vérification des composants et outils système...${C_RESET}" diff --git a/version.json b/version.json index 6df52c2..f01fee3 100644 --- a/version.json +++ b/version.json @@ -1,12 +1,12 @@ { - "version": "1.3.2", + "version": "1.3.3", "codename": "Helios", "release_date": "2026-11-04", "min_php_version": "8.2", "changelog": [ + "Autorisation sudoers www-data automatique pour les mises à jour 1-clic depuis l'interface Web", + "Création systématique du lien symbolique CLI nexus-update à l'installation et à la mise à jour", "Suppression complète des données de démonstration au déploiement (base 100% propre)", - "Résolution du bug de réapparition intempestive des postes, groupes, IVR, paging et routes supprimés", - "Synchronisation robuste de l'annuaire d'entreprise lors de la suppression des extensions", - "Destination entrante par défaut configurée sur raccrochage propre (terminate-hangup)" + "Résolution du bug de réapparition intempestive des postes, groupes, IVR, paging et routes supprimés" ] }