8722 sujets

Développement web côté serveur, CMS

Bonjour,
même si le sujet n'est pas nouveau et que le web regorge de tutos supposés résoudre mon problème, je ne parviens pas à trouver comment allier Apache et un serveur ftp selon mes critères.
En effet, sur Apache j'ai plusieurs serveurs virtuels, j'aimerais donc que pour chaque serveur virtuel, il existe un utilisateur ftp (et si ça pouvais se faire automatiquement ce serait parfait) qui n'ait accès que au répertoire destiné au serveur virtuel. J'aimerais en plus un utilisateur ftp spécial qui lui ait accès à la racine du disque.
Si possible (mais c'est un plus), j'aimerais que la connexion à un utilisateur ftp ne puisse se faire que depuis le domaine associé au serveur virtuel. L'utilisateur spécial pourrait lui se loguer depuis tous les domaines associés à des serveurs virtuels.

Voilà, voilà, autant vous dire que je n'ai aucune idée de comment procéder !

Merci beaucoup de votre aide !
Modifié par juliendargelos (16 Sep 2013 - 22:35)
Administrateur
Ce n'est pas possible "automatiquement", il faut pouvoir générer des fichiers de configuration dans des formats indépendants (ceux d'Apache, et ceux du serveur FTP).
En général un panel web remplit ce rôle, comme par exemple ISPConfig, Plesk, etc. C'est une base MySQL - ou autre moteur équivalent - qui va faire le lien entre tous les comptes utilisateurs.
Ben, soit tu le fais manuellement, soit tu te crées toi-même un petit script shell, soit tu installes un panel comme DTC, plesk, CPanel... qui le fait automatiquement pour toi.

Le problème c'est qu'on ne peut pas t'indiquer comment faire pour le FTP manuellement en connaissant aussi peu d'information. IL y a plusieurs serveurs FTP différents et aucun ne se configure de la même façon que l'autre. ON pourra déjà plus t'aider si tu nous indiques quel serveur FTP est installé chez toi: PureFTPd, ProFTPd, VSFTPd, etc. A noter que certains d'entre eux ont aussi plusieurs modes de stockages des comptes à choisir sous forme de plugins: fichiers, base de données, XML, liés au shell, etc.
Bon, un tutoriel sur (l'ex Site Du Zéro) openclassrooms a résolu mon problème. Je pense effectivement que j'écrirais moi-même un petit script qui me fera une configuration complète de serveur virtuel.
Mais du coup j'ai une autre question à ce propos: les droits de www-data sont-ils suffisants pour que je puisse par exemple éditer des fichiers dans /var/apache2/sites-available avec php ?
(Je ne suis même pas sûr de dire quelque chose de sensé en prétendant que php et www-data sont liés)
Modifié par juliendargelos (19 Sep 2013 - 16:46)
a écrit :
Mais du coup j'ai une autre question à ce propos: les droits de www-data sont-ils suffisants pour que je puisse par exemple éditer des fichiers dans /var/apache2/sites-available avec php ?
(Je ne suis même pas sûr de dire quelque chose de sensé en prétendant que php et www-data sont liés)

Si. Sauf si on utilise des modules d'apache un peu spéciaux, les scripts php sont exécutés avec l'utilisateur d'apache: www-data, ou nobody sur certains systèmes.

Si tu veux parler de /etc/apache2/sites-available/ par défaut non, php n'y a pas accès, mais tu peux faire pour en jouant avec l'OPEN_BASEDIR et les droits linux. Attention par contre, ça pourrait être dangereux si quelqu'un trouvait une faille dans tes scripts, mais tu as de toute façon aussi ce risque si tu installes un panel.