Mise en place d'un serveur FTP
Wave Style 974
Messages postés
902
Date d'inscription
Statut
Membre
Dernière intervention
-
Wave Style 974 Messages postés 902 Date d'inscription Statut Membre Dernière intervention -
Wave Style 974 Messages postés 902 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je possede un serveur FTP disponible a cette adresse : wavestyle974.d2g.com ... Il est disponible avec un client FTP et l'explorateur windows dans les favoris reseaux . Mais le probleme est le suivant : lorsqu'un compte vien a etre créer , on ne peut pas le faire a travers une page HTML , que a partir du PC serveur . Genre si je veux me connecter avec un nom d'utilisateur " Gerard " , Il faut d'abord que je le créer sur le PC serveur , et seulement par ce moyen . Ce que je voudrais , c'est qu'on arrive sur une Page Html ou PHP , on rempli un formulaire , et un compte d'utilisateur est crée sur le Serveur FTP , seulement , je n'ai aucune idée de la maniere a le realiser , si quelqu'un pourrait m'aider , ce serait sympa ...
A voir également:
- Mise en place d'un serveur FTP
- Mise en forme conditionnelle excel - Guide
- Changer serveur dns - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Verification de l'identité du serveur impossible - Forum iPhone
2 réponses
Bonjour,
Rien de plus simple (ou pas^^ : c'est vite dit) :
1- tu installe donc un serveur Web (apache si ce n'est pas déjà fait).
2- Tu te créer un fichier HTML avec un formulaire qui demande un nom d'utilisateur et un mot de passe. Ainsi qu'éventuellement son dossier 'home'.
3- En validant ce formulaire, tu fais donc appel à un fichier PHP(obligatoire) qui exécutera toutes les commandes Linux nécessaire à la création du compte.
Avec cette solution tu rencontreras des problèmes de droits : ben oui, le serveur web n'est pas 'root' et n'a donc pas le droit de créer un utilisateur. Pour y remédier, je te conseil d'installer 'sudo' et d'éditer le fichier /etc/sudoers pour autoriser le serveur a exécuter que le script qui suit (sécurité oblige).
4-Tu te crée donc un fichier Shell, par exemple nommé 'CreerUtilisateur.sh' que tu places sur le site (a coté du fichier PHP pour plus de simplicité).
5- Dans ce fichier tu met:
Code Shell
Le premier 'if' vérifie qu'il ne manque pas de parametre (le nom, le mot de passe et le dossier 'home')
Le second crée l'utilisateur
Le troisieme fait que le mot de passe n'expirera jamais
Le quatrieme défini le mot de passe
Le cinquieme (facultatif) s'assure que l'utilisateur ai bien tous les droits sur son dossier 'home'
6- Dans le fichier PHP maintenant, tu fait donc les vérification habituelles (il ne faut pas que le nom, le pass et le dossier soient vide !!) puis tu ajoutes, tout bêtement :
Code PHP:
7- Enfin, tu modifies le fichier /etc/sudoers en rajoutant (je ne suis pas sûr des lignes, cela remonte à quelque temps déjà)
Fichier /etc/sudoers
Voici ce que fait ce fichier:
- On ajoute un alias vers le fichier a exécuter nommé CREERUSER
- Puis on indique a 'sudo' que l'utilisateur 'www-data' (apache) doit donner un mot de passe 'root' pour toutes les commandes qu'il entrera exépté pour la commande 'CREERUSER'
Aprés avoir édité ce fichier n'oubli jamis de redémarrer 'sudo' :
Voila, essaye ça, j'ai utilisé cette technique début janvier sur un serveur Debian et ça fonctionne nickel
En cas de problème, n'hesite pas à demander
Bonne soirée
Rien de plus simple (ou pas^^ : c'est vite dit) :
1- tu installe donc un serveur Web (apache si ce n'est pas déjà fait).
2- Tu te créer un fichier HTML avec un formulaire qui demande un nom d'utilisateur et un mot de passe. Ainsi qu'éventuellement son dossier 'home'.
3- En validant ce formulaire, tu fais donc appel à un fichier PHP(obligatoire) qui exécutera toutes les commandes Linux nécessaire à la création du compte.
Avec cette solution tu rencontreras des problèmes de droits : ben oui, le serveur web n'est pas 'root' et n'a donc pas le droit de créer un utilisateur. Pour y remédier, je te conseil d'installer 'sudo' et d'éditer le fichier /etc/sudoers pour autoriser le serveur a exécuter que le script qui suit (sécurité oblige).
4-Tu te crée donc un fichier Shell, par exemple nommé 'CreerUtilisateur.sh' que tu places sur le site (a coté du fichier PHP pour plus de simplicité).
5- Dans ce fichier tu met:
Code Shell
#!/bin/sh $NOM_UTILISATEUR="$1" $DOSSIER_HOME="$2" $MOT_DE_PASSE="3" if [ -z $NOM_UTILISATEUR -o -z $MOT_DE_PASSE -o -z $DOSSIER_HOME ] ; then exit 1 fi if ! useradd -d $DOSSIER_HOME -m -s /bin/bash $NOM_UTILISATEUR ; then exit 2 fi if ! /usr/bin/chage -m -1 -M 99999 -W -1 $NOM_UTILISATEUR; then exit 3 fi if ! /bin/echo "$NOM_UTILISATEUR:$MOT_DE_PASSE" | /usr/sbin/chpasswd ; then exit 4 fi if ! chown $NOM_UTILISATEUR $DOSSIER_HOME ; then exit 5 fi
Le premier 'if' vérifie qu'il ne manque pas de parametre (le nom, le mot de passe et le dossier 'home')
Le second crée l'utilisateur
Le troisieme fait que le mot de passe n'expirera jamais
Le quatrieme défini le mot de passe
Le cinquieme (facultatif) s'assure que l'utilisateur ai bien tous les droits sur son dossier 'home'
6- Dans le fichier PHP maintenant, tu fait donc les vérification habituelles (il ne faut pas que le nom, le pass et le dossier soient vide !!) puis tu ajoutes, tout bêtement :
Code PHP:
//... Début du script
// $USER_NAME contient le nom d'utilisateur souhaité
// $HOME contient le dossier 'home' souhaité
// $PASSWORD ... bah, tu l'auras compris^^
passthru("sudo CreerUtilisateur.sh $USER_NAME $HOME $PASSWORD",$err);
if ( $err == 0 )
{
// Tout c'est bien passé
// L'utilisateur est créé
}
else if ( $err == 1 )
{
// Certains paramettres manques (un champ vide dans le formulaire ?)
}
else if ( $err == 2 )
{
// Impossible de créer l'utilisateur (il existe déjà ou son nom/home n'est pas valide)
}
else if ( $err == 3 )
{
// Changement de la longévité du mot de passe... beh, s'il y a une erreur je voi pas d'ou elle peut venir...
}
else if ( $err == 4 )
{
// Attibution du mot de passe a échoué... mot de passe invalide ??
}
else if ( $err == 5 )
{
// Impossible de changer les droits, ne devrait pas arriver mais dans le doutes : même raison que le 2
}
...Suite de ton script PHP...
7- Enfin, tu modifies le fichier /etc/sudoers en rajoutant (je ne suis pas sûr des lignes, cela remonte à quelque temps déjà)
Fichier /etc/sudoers
... Cmnd_Alias CREERUSER="/path/vers/le/fichier/CreerUtilisateur.sh" ... www-data ALL=PASSWD,CREERUSER=NOPASSWD ...
Voici ce que fait ce fichier:
- On ajoute un alias vers le fichier a exécuter nommé CREERUSER
- Puis on indique a 'sudo' que l'utilisateur 'www-data' (apache) doit donner un mot de passe 'root' pour toutes les commandes qu'il entrera exépté pour la commande 'CREERUSER'
Aprés avoir édité ce fichier n'oubli jamis de redémarrer 'sudo' :
/etc/init.d/sudo restart
Voila, essaye ça, j'ai utilisé cette technique début janvier sur un serveur Debian et ça fonctionne nickel
En cas de problème, n'hesite pas à demander
Bonne soirée