71 lines
1.9 KiB
Bash
71 lines
1.9 KiB
Bash
#!/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."
|