Serveur Apache HTTP Version 2.4
![](feather.png)
Module Apache mod_userdir
Description: | Répertoires propres à un utilisateur |
---|---|
Statut: | Base |
Identificateur de Module: | userdir_module |
Fichier Source: | mod_userdir.c |
Sommaire
Ce module permet l'accès aux répertoires propres à un utilisateur en
utilisant la syntaxe http://example.com/~utilisateur/
.
Directive UserDir
Description: | Chemin des répertoires propres à un utilisateur |
---|---|
Syntaxe: | UserDir nom-répertoire [nom-répertoire] ...
|
Contexte: | configuration du serveur, serveur virtuel |
Statut: | Base |
Module: | mod_userdir |
La directive UserDir
permet de définir le
répertoire réel du répertoire home d'un utilisateur à utiliser à la
réception d'une requête pour un document de cet utilisateur.
nom-répertoire peut se présenter sous la forme suivante
:
- Le nom d'un répertoire ou un modèle tel que ceux présentés ci-dessous.
- Le mot-clé
disabled
. Toutes les traductions nom d'utilisateur vers répertoire sont alors désactivées, à l'exception de celles comportant le mot-cléenabled
(voir ci-dessous). - Le mot-clé
disabled
suivi d'une liste de noms d'utilisateurs séparés par des espaces. Les noms d'utilisateurs apparaissant dans une telle liste ne feront jamais l'objet d'une traduction vers un répertoire, même dans le cas où ils apparaîtront dans une clauseenabled
. - Le mot-clé
enabled
suivi d'une liste de noms d'utilisateurs séparés par des espaces. Les noms d'utilisateurs apparaissant dans une telle liste seront traduits en répertoires même dans le cas où une clause disable globale est active, mais pas s'ils apparaissent aussi dans une clausedisabled
.
Si aucun mot-clé enabled
ou disabled
n'apparait dans la directive Userdir
, l'argument est
traité en tant que modèle de fichier, et utilisé pour traduire le
nom d'utilisateur en une spécification de répertoire. Une requête
pour http://www.example.com/~bob/un/deux.html
sera
traduite en :
Directive Userdir utilisée | Chemin traduit |
---|---|
UserDir public_html | ~bob/public_html/un/deux.html |
UserDir /usr/web | /usr/web/bob/un/deux.html |
UserDir /home/*/www | /home/bob/www/un/deux.html |
Les directives suivantes vont envoyer des redirections au client :
Directive Userdir utilisée | Chemin traduit |
---|---|
UserDir http://www.example.com/utilisateurs | http://www.example.com/utilisateurs/bob/un/deux.html |
UserDir http://www.example.com/*/usr | http://www.example.com/bob/usr/un/deux.html |
UserDir http://www.example.com/~*/ | http://www.example.com/~bob/un/deux.html |
"UserDir ./"
ferait correspondre
"/~root"
à "/"
- ce qui n'est
probablement pas souhaité. Il est fortement recommandé d'inclure
une déclaration "UserDir disabled root
" dans votre
configuration. Voir aussi la directive Directory
et la page Conseils en matière de
sécurité pour plus d'informations.
Exemples supplémentaires :
Pour permettre à quelques utilisateurs et seulement à ceux-ci de
posséder des répertoires UserDir
, utilisez la
configuration suivante :
UserDir disabled UserDir enabled user1 user2 user3
Pour permettre à la plupart des utilisateurs de posséder des
répertoires UserDir
, mais l'interdire à quelques uns,
utilisez la configuration suivante :
UserDir disabled utilisateur4 utilisateur5 utilisateur6
Il est aussi possible de spécifier des répertoires utilisateurs alternatifs. Si vous utilisez une commande comme :
UserDir "public_html" "/usr/web" "http://www.example.com/"
Avec une requête pour
http://www.example.com/~bob/un/deux.html
, le serveur
tentera tout d'abord de trouver la page à
~bob/public_html/un/deux.html
, puis à
/usr/web/bob/un/deux.html
, et enfin il enverra une
redirection vers
http://www.example.com/bob/un/deux.html
.
Si vous spécifiez une redirection, elle doit être la dernière alternative de la liste. Apache httpd ne pouvant pas déterminer si la redirection a réussi, si cette dernière ne se trouve pas en fin de liste, c'est cette alternative qui sera toujours utilisée.
La substitution de répertoire utilisateur n'est pas activée par
défaut depuis la version 2.1.4. Dans les versions précédentes,
UserDir public_html
était sous-entendu si aucune
directive UserDir
n'était présente.
Détails à propos de la fusion
Lorsqu'on passe du contexte global au contexte de serveur virtuel, les listes d'utilisateurs spécifiques activés ou désactivés sont remplacées par les listes du contexte, et non fusionnées.