Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Zone de développement par utilisateur


Sujet :

Apache

  1. #1
    Membre du Club
    Zone de développement par utilisateur
    Bonsoir,

    Je suis dans un colloc avec des amis, et j'aimerai installer un serveur web en local sur lequel chacun d'entre nous pourrait développer ses propres sites, et sans pouvoir aller farfouiller dans les dossiers des autres. Ce que j'ai fait pour le moment, c'est de mettre en place un serveur SFTP : chacun d'entre nous a un accès à un répertoire perso sur le serveur, dans lequel ce trouve un dossier www/ où seront sauvegardés les fichiers de nos sites respectifs ; par exemple :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    /sftp/pierre/home/www
    /sftp/jacques/home/www


    J'installe ensuite Apache et PHP. Ce que j'ai fait pour configurer le serveur comme exposé plus haut, c'est utilisé le module userdir, que j'ai configuré de la sorte :
    Code shell :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <IfModule mod_userdir.c>
    #       UserDir public_html
            UserDir disabled root
            UserDir /home/*/home/www
            <Directory /home/*/home/www>
                    AllowOverride FileInfo AuthConfig Limit Indexes
                    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                    AuthType Basic
                    AuthName "Authentifiez-vous :"
                    AuthBasicProvider file
                    AuthUserFile "/home/pierre/passwd" #fichier dans lequel sont sauvegardés les couples (id;mdp) cryptés (1)
                    Require valid-user
            </Directory>
    </IfModule>
    
    # vim: syntax=apache ts=4 sw=4 sts=4 sr noet


    Et j'ai mis dans /etc/apache2/apache2.conf :
    Code shell :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    <Directory />
            Require all denied
    </Directory>


    Et ça marche presque ! Si je vais sur 192.168.*.*/~pierre, je tombe bien sur le fichier /sftp/pierre/home/www/index/php, après m'être identifier !
    Le problème que je rencontre, c'est que si Pierre fais un petit bout de PHP pour aller fouiller dans les dossiers parents, rien ne l'en empêche... :/
    Par exemple :
    Code PHP :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                    <?php
                            if($dossier=opendir('../../../../'))
                            {
                                    echo 'Open ! <br/>';
                                    while($fichier=readdir($dossier))
                                    {
                                            echo $fichier, '<br/>';
                                    }
                            }
     
                            echo 'Done.<br/>';
                            echo realpath('index.php');
                    ?>

    Ca affiche tout ce qu'il y a à la racine du serveur.

    Comment borner l'accès de chaque utilisateur à sa zone ?
    Merci beaucoup !

  2. #2
    Membre du Club
    Vraiment, personne n'aurait d'idée pour m'aiguiller ? :/