[Création de compte FTP en ligne] vsFTPd

Bonjour à tous,

Je ne sais pas si je suis dans le bon forum pour ce type de questions, si c’est n’est pas le cas, je vous prie de m’excuser, et de ne pas faire attention à mon topic.

Bon, je vais vous exposer mon problème auquel je ne trouve pas de réponses :

Je suis actuellement entrain de créer un site d’hébergement de fichiers (comme on peut en voir de partout).
Pour cela, je souhaite créer un système qui obligerait les utilisateurs à passer par mon site pour télécharger les fichiers. J’ai donc imaginé un système de passage par comptes FTP provisoires.

En gros, lors qu’une personne arrive sur la page de téléchargement du fichier, je crée sur le serveur un compte FTP aléatoire qui donnera accès uniquement au fichier demandé.
Puis ensuite, un scripte tournera sur le serveur, toute les 5 minutes (par exemple) pour vérifier si les comptes ont terminer le téléchargement, s’il y a eu une erreur durant le téléchargement ou alors, si le téléchargement n’a pas commencé après 10 minutes de sa création. Dans ces cas, le compte sera supprimé.

Bref, sur le papier, c’est joli. Ca devrait marché.

Donc première question : Est-ce que cette solution vous parait efficace ou non ? (Je sais, nous somme sur un serveur de support linux, mais un avis de plus ne serait pas de trop).

Du côté technique,
J’utilise un debian (sans blagues ?), pour le FTP serveur, j’utilise vsFTPd.
Pour créer un compte FTP, je n’ai besoin que de deux chose : Un fichier de configuration du compte, et une entrée dans une base de donnée.
Pour l’entrée dans la base de donnée, je n’ai aucun problème. Mais c’est pour la création du fichier que c’est plus compliqué.

Sachant que je le crée via PHP, le fichier se crée avec le compte www-data (compte qu’utilise apache2). Je pensais que cela ne poserai aucun soucis étant donné que vsFTPd utilise le compte root, donc ne devrait pas avoir de problème pour lire le fichier de configuration.
Donc ce qu’il se passe, c’est que le compte est en effet créé, mais il prend les configuration de base, ce qui est embêtant car je souhaite lui donner accès uniquement au dossier où se trouve le fichier demandé.

Mais ce dont j’ai l’impression, c’est qu’il ne veut pas prendre en considération la configuration individuelle car justement il n’a pas été créer depuis le compte root.
Je ne sais pas si je suis assez clair (en principe, j’ai du mal à me faire comprendre à ce niveau là ^^).

Donc, ce que je souhaite, pour faire court et claire, c’est :

  • Soit, faire en sorte que vsFTPd prenne en considération les fichiers créer sous un autre compte que root.
  • Soit pouvoir changer les droits sur le fichier pour qu’il le voie comme étant créer par root.
  • Ou autre solutions auxquelles je n’aurais pas pensée :wink:

Je vous remercie d’avance, et espère pouvoir recevoir de votre aide.

Amicalement,
Thomas Kundig.

Si tu veux obliger les gens à passer par ton site, pourquoi veux-tu leur créer un compte FTP ?
Un lien vers le fichier ne suffit pas ? Ledit lien n’étant pas un lien direct mais un lien vers un script php vérifiant login + mot de passe, si l’utilisateur n’a pas dépassé ses 10 minutes de délai de téléchargement, etc.
Une fois ces conditions remplies, le script va chercher le fichier à télécharger et le propose à l’utilisateur.

Pour l’histoire des droits root et www-data :
Si tu as la main sur le serveur, tu peux avec sudo donner certains droits root à l’utilisateur www-data. Tu peux également faire créer un fichier à www-data, ce fichier contenant des comptes à créer, et une tâche cron vérifiera toutes les X minutes si l’utilisateur root a du boulot en consultant ce fichier.