Sécuriser un espace pour PHP
Bonsoir à tous,
Je gère un petit serveur sur lequel j'ai installé Apache et PHP, ainsi qu'un accès SFTP.
J'ai configuré le serveur SFTP de sorte que chaque utilisateur d'un certain groupe sftpusers a un dossier qui lui est propre : /sftp/*user/home/ (avec *user le nom de l'utilisateur). Les owners et groupes des dossiers sont :
root:root /sftp/*user
*user:sftpusers /sftp/*user/home
Ce qui garanti que chaque utilisateur ne peut accéder qu'à son /sftp/*user/home/, c'est parfait.
Maintenant, j'aimerai que chaque utilisateur puisse uploader dans son répertoire ses propres sites internet (donc ses fichiers *.php, *.css, *.html, etc.), et que ceux-ci soient accessibles avec Apache.
Les fichiers sources des sites lisibles avec Apache sont situés dans /var/www/html. J'ai donc créé pour chaque utilisateur un dossier (root:root) /var/www/html/*user et un dossier /sftp/*user/home/www. J'ai créé un lien symbolique /var/www/html/*user -> /sftp/*user/home/www , de sorte à ce que quand un utilisateur upload un fichier pour son site dans /sftp/*user/home/www, il est accessible à l'adresse monsite.fr/*user/, et ça fonctionne très bien !
Le problème, c'est que l'utilisateur peut mettre n'importe quoi, et avec des codes très simples en PHP, modifier l'intégralité des fichiers de la racine / (j'ai testé par exemple avec scandir(), on voit absolument tout les fichier de l'ordi serveur), ce qui n'est pas très sécure, vous en conviendrez ^^.
Comment faire donc pour allouer un espace sur mon serveur lequel chaque utilisateur puisse héberger personnellement son site, mais sans pouvoir aller bricoler les fichiers des autres ou du serveur ? Faut-il utiliser le mod d'Apache UserDir, ou bien jouer avec les droits d'accès des fichiers ?
Merci beaucoup !
Bonne journée