#!/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="${SUDO_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..." 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."