Page Web Création Users

Page Web Création Users - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 12-07-2012 à 14:21:27    

Bonjour à tous :),
 
Dans le cadre d'un projet assez général (qui comprend postfix, etc, mais cela n'est pas vraiment important pour ma demande), je dois réaliser une page web sur laquelle via des champs et un bouton je pourrai créer des utilisateurs linux avec leurs passwords.
 
Pour l'instant j'ai deux choses :  
 
- un .sh qui me permet de créer un user avec un mdp
 

Spoiler :


if [ $(id -u) -eq 0 ]; then
        read -p "Entrer le nom de l'utilisateur : " username
        read -s -p "Entrer le mot de passe de l'utilisateur : " password
        egrep "^$username" /etc/passwd >/dev/null
        if [ $? -eq 0 ]; then
                echo "$username existe deja !"
                exit 1
        else
                pass=$(perl -e 'print crypt($ARGV[0], "password" )' $password)
                useradd -m -p $pass $username
                [ $? -eq 0 ] && echo "Le compte est cree !" || echo "Echec !"
        fi
else
        echo "Seul le root peut ajouter un utilisateur"
        exit 2
fi


 
- une page html qui me permet d'avoir des champs dans lesquels entrer le nom de l'utilisateur et son password + un bouton "ajouter l'utilisateur".

Spoiler :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Gestion des utilisateurs</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   </head>
 
 <body>
     
       <div id="corps">
           <h1>Gestion des utilisateurs</h1>
       
   <p>
               Bienvenue  !<br />
               Il sera possible d'ajouter et de supprimer des utilisateurs depuis cette page !<br/>
 
<br/>
  Nom de l'utilisateur
  <input type="text" id="username">
  Mot de passe
  <input type="password" id="password">
  <button id="adduser">Ajouter utilisateur</button>
 
   </p>
        </div>
   </body>
</html>


 
 
Je suis bloquée car je ne sais pas vraiment comment "lier" ces deux éléments. Pouvez-vous m'aider?
 
Merci beaucoup par avance !
 
PS : je suis vraiment débutante dans le code ^^


Message édité par thany le 12-07-2012 à 14:23:06
Reply

Marsh Posté le 12-07-2012 à 14:21:27   

Reply

Marsh Posté le 12-07-2012 à 14:41:36    

HTML est simplement un langage de présentation interprété par les browsers web. Il te faut créer un formulaire (ça tu l'as fait) et le lier avec un mécanisme situé sur le serveur.
Cela peut être un
 - un script cgi
 - un script php
 - du jsp
 - du perl
Ton formulaire envoie les données au script côté serveur qui en fera ce qu'il voudra (création de user, interaction avec une base de donnée, etc...)
http://en.wikipedia.org/wiki/Server-side_scripting


Message édité par o'gure le 12-07-2012 à 14:41:58
Reply

Marsh Posté le 12-07-2012 à 14:43:16    

Après recréer cela de a à z, c'est lourd, propice à de gros problèmes (bug, faille de sécurité, maintenance, etc...) Il doit exister des solutions clés en mains permettant la création/gestion de users via une interface web.

Reply

Marsh Posté le 12-07-2012 à 15:10:54    

Merci beaucoup o'gure.
 
Il s'agit d'un projet purement scolaire, sinon en effet d'autres solutions auraient été préconisées :).
 
Je peux laisser mon code HTML comme cela et y intégrer un PHP pour executer le .sh ?
 
 
Merci

Reply

Marsh Posté le 12-07-2012 à 15:15:57    

Je dirais que dans une première étape, tu devrais t'informer sur comment fonctionne php...
http://www.siteduzero.com/tutoriel [...] aires.html

Reply

Marsh Posté le 12-07-2012 à 18:22:21    

En plus pour exécuter des commandes nécessitant des droits root, il faut faire ça proprement :
 
http://blog.khemael.net/2010/08/26 [...] -en-php/2/


---------------
http://agentoss.wordpress.com/
Reply

Marsh Posté le 15-07-2012 à 22:15:37    

[:gaga drapal] sur ce sujet fort intéressant.
Une fois avancé, je suis preneur car j'avais justement une demande "équivalente" pour de la gestion de quota en graphique, mais s'il ne s'agit que d'avoir en plus du serveur de fichiers "de base" un bête serveur web (nginx/apache/...) avec du PHP et de quoi consulter/remplir les quotas, ça m'intéresse.
 
Par contre tes utilisateurs, ils sont stockés où ?
Du LDAP ? -> phpldapadmin est plus adapté et déjà opérationnel sans réinventer la roue
Du vrai utilisateur local sur la machine ? -> là il faut voir en plus les droits à donner, notamment si tu ne veux pas qu'ils puissent s'y connecter directement mais qu'ils puissent s'y logguer pour un accès autre (typiquement du serveur de fichiers)


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
Reply

Marsh Posté le 17-07-2012 à 09:21:48    

Bonjour à tous et merci pour vos conseils.
 
Voici en j'en suis (malheureusement cela ne fonctionne pas encore...). 3 fichiers :
 
users.html :

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  3.    <head>
  4.        <title>Gestion des utilisateurs</title>
  5.        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6.    </head>
  7.  <body>
  8.            <div id="corps">
  9.            <h1>Gestion des utilisateurs</h1>
  10.       <p>
  11.                Bienvenue  !<br />
  12.                Vous pouvez supprimer des utilisateurs depuis cette page !<br/><br/>
  13.  </p>
  14.  <!--Appel le fichier php qui executera le exec-->
  15.  <form method="post" action="fichierphp.php">
  16.   <label for="user">Nom de l'utilisateur</label>  <input type="text" id="username"><br />
  17.   <label for="mdp">Mot de passe</label>   <input type="password" id="password"><br /><br />
  18.   <input type="submit" value="Ajouter utilisateur" />
  19.  </form>
  20.         </div>
  21.    </body>
  22. </html>


 
fichierphp.php :

Code :
  1. <?php
  2. if (($_POST["username"])&&($_POST["password"])) //Verification que les champs soient remplis
  3. {
  4. Exec("sudo /home/scripts/adduser.sh" );
  5. }
  6. ?>


 
adduser.sh :

Code :
  1. if [ $(id -u) -eq 0 ]; then
  2. read -p "Entrer le nom de l'utilisateur : " username
  3. read -s -p "Entrer le mot de passe de l'utilisateur : " password
  4. egrep "^$username" /etc/passwd >/dev/null
  5. if [ $? -eq 0 ]; then
  6.  echo "$username existe deja !"
  7.  exit 1
  8. else
  9.  pass=$(perl -e 'print crypt($ARGV[0], "password" )' $password)
  10.  useradd -m -p $pass $username
  11.  [ $? -eq 0 ] && echo "Le compte est cree !" || echo "Echec !"
  12. fi
  13. else
  14. echo "Seul le root peut ajouter un utilisateur"
  15. exit 2
  16. fi


 
Les manipulations sont ok pour l'exec en root :) !
 
Merci par avance et bonne journée


Message édité par thany le 17-07-2012 à 14:50:30
Reply

Marsh Posté le 17-07-2012 à 14:43:06    

Il faut que tu modifies ton script bash adduser.sh par l'ajout d'une utilisation d'arguments.
Regardes ici comment faire.

 

Une fois fait, il te faudrait modifier ton script d'appel fichierphp.php pour insérer les arguments username et password à l'exec de ton script bash (voir ici un exemple)

 

Enfin et pour finir, tu peux faire plus propre en modifiant ton users.html en le transformant directement en PHP, et d'insérer suivant la méthode $_GET l'appel à ton script d'exec.

 

Et si je puis me permettre, à l'avenir utilises soit la méthode fixe (bouton Fixe) ou script (C/C++) plutôt que la mise en spoiler, c'est plus agréable à lire [:eneytihi:4]

 

edit : et puis tant que j'y pense, tu as pensé à faire un truc "plus généraliste" avec usermod, userdel, passwd ?


Message édité par bardiel le 17-07-2012 à 17:17:37

---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed