Apache possède par défaut un module permettant de créer un espace web pour chaque utilisateur présent sur le serveur. Ce module mod_userdir
permet de parcourir la liste des utilisateurs du serveur et de regarder leurs dossiers correspondants, chaque dossier corresponda donc à un utilisateyr et deviendra la racine web.
En saisissant une adresse de type http://ip_server/~utilisateur) vous accéderez à son espace web personnel.
Configuration
Pour créer un espace web automatique pour chaque utilisateur possédant déjà un répertoire personnel sur le serveur il faut simplement activer le module et redémarrer Apache
# a2enmod userdir |
Création du dossier personnel
Le module mod_userdir
scannera le contenu des dossiers utilisateurs dans /home/
à la recherche du dossier public_html
. Il faut donc créer se dernier en lui attribuant les bons droits.
# mkdir /home/user/public_html |
Vous devriez pouvoir accéder à l’espace personnel de chaque utilisateur en allant sur http://ip_server/~utilisateur
Multidomaines
En cas de serveur multi-domaines les dossiers utilisateurs seront accessibles via TOUS les domaines présents sur le serveurs, même si le dossier public_html
se trouve uniquement dans /home/aline/public_html
exemple :
https://monsite.com/~aline |
Changer le nom du répertoire
On peut changer le nom du répertoire par défaut qui sera systématiquement listé dans le fichier /etc/apache2/mods-available/userdir.conf
<IfModule mod_userdir.c> |
Liste blanche
Le problème est que n’importe quel utilisateur qui ajoutera un dossier public_html sera accessible. Il est possible de limiter les accès en utilisant une liste blanche soit en modifiant directement le fichier /etc/apache2/mods-available/userdir.conf
ainsi aucun utilisateur ne pourra avoir d’espace personnel sauf ceux listés
<IfModule mod_userdir.c> |
Soit il est possible de restreindre l’affichage pour un VHost
<VirtualHost *:80> |
Enlever la tilde ~ dans l’adresse
https://httpd.apache.org/docs/trunk/howto/public_html.html#page-header
Documentation
https://computerz.solutions/debian-apache-espace-web-pour-chaque-user-mod_userdir/
https://httpd.apache.org/docs/trunk/howto/public_html.html#page-header