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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 /sftp/pierre/home/www /sftp/jacques/home/www
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 :
Ca affiche tout ce qu'il y a à la racine du serveur.
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'); ?>
Comment borner l'accès de chaque utilisateur à sa zone ?
Merci beaucoup !
Partager