From a8cd67f38c3b0dd60689555c010c4275e48cc365 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9drix?= <cedric@abonnel.fr>
Date: Sat, 22 Mar 2025 07:55:04 +0100
Subject: [PATCH] add script set-persmissions-www dans server-httpd

---
 scripts/server-httpd/.list_files.txt        |  1 +
 scripts/server-httpd/set-permissions-www.sh | 70 +++++++++++++++++++++
 2 files changed, 71 insertions(+)
 create mode 100644 scripts/server-httpd/set-permissions-www.sh

diff --git a/scripts/server-httpd/.list_files.txt b/scripts/server-httpd/.list_files.txt
index 0a4e714..f703f2a 100644
--- a/scripts/server-httpd/.list_files.txt
+++ b/scripts/server-httpd/.list_files.txt
@@ -1,4 +1,5 @@
 add_domain.sh
 add_domain_ssl.sh
 install-php8-3.sh
+set-permissions-www.sh
 setup_httpd.sh
diff --git a/scripts/server-httpd/set-permissions-www.sh b/scripts/server-httpd/set-permissions-www.sh
new file mode 100644
index 0000000..bb4b704
--- /dev/null
+++ b/scripts/server-httpd/set-permissions-www.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
+
+# Importer les fonctions communes
+source "$(dirname "$0")/../common/common_utils.sh"
+
+# Vérifier si le script est exécuté en root
+check_root
+
+WWW_DIR="/var/www"
+CURRENT_USER=$(whoami)
+
+echo "Correction des permissions de $WWW_DIR/html si nécessaire..."
+if [ -d "$WWW_DIR/html" ]; then
+    OWNER_GROUP=$(stat -c "%U:%G" "$WWW_DIR/html")
+    if [ "$OWNER_GROUP" != "www-data:www-data" ]; then
+        sudo chown -R www-data:www-data "$WWW_DIR/html"
+        echo "Propriétaire de /$WWW_DIR/html corrigé en www-data:www-data"
+    else
+        echo "$WWW_DIR/html est déjà correctement configuré."
+    fi
+fi
+
+echo ""
+echo "Liste des dossiers dans $WWW_DIR :"
+dirs=()
+i=1
+for d in "$WWW_DIR"/*/; do
+    folder=$(basename "$d")
+    dirs+=("$folder")
+    echo "[$i] $folder"
+    ((i++))
+done
+
+echo "[0] Tous les dossiers"
+
+read -p "Sur quel dossier appliquer la règle ? (Entrer le numéro ou 0 pour tous) : " choix
+
+# Ajout de l'utilisateur courant au groupe www-data
+if id -nG "$CURRENT_USER" | grep -qw "www-data"; then
+    echo "L'utilisateur $CURRENT_USER est déjà dans le groupe www-data"
+else
+    echo "Ajout de $CURRENT_USER au groupe www-data..."
+    sudo usermod -aG www-data "$CURRENT_USER"
+fi
+
+# Fonction d'application des droits
+apply_permissions() {
+    dossier="$1"
+    echo "Application des permissions sur $WWW_DIR/$dossier ..."
+    chown -R www-data:www-data "$WWW_DIR/$dossier"
+    chmod -R g+rwX "$WWW_DIR/$dossier"
+}
+
+if [ "$choix" -eq 0 ]; then
+    for d in "${dirs[@]}"; do
+        apply_permissions "$d"
+    done
+else
+    index=$((choix - 1))
+    if [ "$index" -ge 0 ] && [ "$index" -lt "${#dirs[@]}" ]; then
+        apply_permissions "${dirs[$index]}"
+    else
+        echo "Choix invalide."
+        exit 1
+    fi
+fi
+
+echo ""
+echo "Opération terminée. Pensez à vous déconnecter/reconnecter si c'est la première fois que vous rejoignez le groupe www-data."