Mise en place d'un serveur FTP
Fermé
Wave Style 974
Messages postés
902
Date d'inscription
dimanche 27 septembre 2009
Statut
Membre
Dernière intervention
21 janvier 2015
-
27 févr. 2010 à 15:33
Wave Style 974 Messages postés 902 Date d'inscription dimanche 27 septembre 2009 Statut Membre Dernière intervention 21 janvier 2015 - 28 févr. 2010 à 07:04
Wave Style 974 Messages postés 902 Date d'inscription dimanche 27 septembre 2009 Statut Membre Dernière intervention 21 janvier 2015 - 28 févr. 2010 à 07:04
A voir également:
- Mise en place d'un serveur FTP
- Mise en forme conditionnelle excel - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Changer serveur dns - Guide
- Mise a jour windows 10 - Accueil - Mise à jour
- Serveur pop - Guide
2 réponses
jeje6_3
Messages postés
12
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
3 mars 2010
27 févr. 2010 à 21:25
27 févr. 2010 à 21:25
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
Wave Style 974
Messages postés
902
Date d'inscription
dimanche 27 septembre 2009
Statut
Membre
Dernière intervention
21 janvier 2015
76
28 févr. 2010 à 07:04
28 févr. 2010 à 07:04
Ok merci a toi , je vais essayer tout sa et jen t'en dis des nouvelles , Merci à toi !