Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 18-11-2016 18:30:21

Xunil
Membre
Distrib. : Debian GNU/Linux 7.6 - Wheezy
Noyau : 3.10.23
Inscription : 19-03-2016

[Résolu] Apache : Limiter le module "userdir" à un seul nom de domaine

Bonjour, smile

J'ai activé le module userdir sur mon serveur Apache pour que les utilisateurs présent sur le serveur puissent avoir leur page personnelle.

Le module fonctionne bien, ils peuvent accéder à http:// siteDesUtilsateurs.com/~utilisateur1

Le problème est que le serveur est multidomaine et que depuis n'importe quel autre site ces pages perso sont accessibles :
http:// autreSite.com/~utilisateur1
http:// autreSite2.org/~utilisateur1


Comment puis-je limiter le module userdir à un domaine en particulier ?

Dernière modification par Xunil (18-11-2016 19:12:47)

Hors ligne

#2 18-11-2016 19:12:08

Xunil
Membre
Distrib. : Debian GNU/Linux 7.6 - Wheezy
Noyau : 3.10.23
Inscription : 19-03-2016

Re : [Résolu] Apache : Limiter le module "userdir" à un seul nom de domaine

J'ai trouvé une astuce, je ne sais si c'est très propre de faire comme ça mais ça fonctionne :

Directement dans le fichier /etc/apache2/mods-available/userdir.conf j'ai commenté la directive en question :

 <IfModule mod_userdir.c>

          #UserDir public_html
          UserDir disabled root
 
          [...]


Donc à ce stade le module est toujours activé mais il ne va chercher aucun répertoire à lister chez les dossiers /home/users

Ensuite dans le vhost qui m’intéresse j'ajoute la directive que je viens de commenter dans l'autre fichier

<VirtualHost *:80>
   
    ServerName siteDesUtilsateurs.com
    ServerAlias www.siteDesUtilsateurs

    UserDir public_html

[...]



Je ne sais pas si c'est correct de procéder comme ça, donc si quelqu'un connait une autre façon de faire.


Merci smile

Dernière modification par Xunil (18-11-2016 19:16:02)

Hors ligne

#3 10-02-2017 13:14:27

navugo
Membre
Inscription : 10-02-2017

Re : [Résolu] Apache : Limiter le module "userdir" à un seul nom de domaine

Bonjour,

J'ai pour ma part eu le même soucis afin de placer les répertoires ~/public_html dans un sous-domaine uniquement.

J'ai procédé de la manière suivante.

service apache2 stop
cp /etc/apache2/mod-available/userdir.conf /etc/apache2/mod-available/userdir.conf.BAK
> /etc/apache2/mod-available/userdir.conf



Ensuite copier le contenu de userdir.conf dans le vhost du domaine ou vous le souhaitez disponible.

<VirtualHost>

        ...

        <IfModule mod_userdir.c>
                UserDir public_html
                UserDir disabled root
                <Directory /home/*/public_html>
                        AllowOverride FileInfo AuthConfig Limit Indexes
                        Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                        <Limit GET POST OPTIONS>
                                Require all granted
                        </Limit>
                        <LimitExcept GET POST OPTIONS>
                                Require all denied
                        </LimitExcept>
                </Directory>
        </IfModule>

        ...

</VirtualHost>



Puis relancer apache (service apache2 start, ou restart), en laissant bien le module userdir activé. Ainsi, le comportement est le même : en désactivant userdir (a2dismod userdir), vous désactiverez l'accès aux répertoires, même avec la configuration dans un vhost.

Hors ligne

Pied de page des forums