Partage
  • Partager sur Facebook
  • Partager sur Twitter

Vérification utilisateur script bash

script bash - utilisateur

Sujet résolu
    5 février 2015 à 22:53:13

    Bonsoir, 

    Je viens vous demander de l'aide pour l'édition d'un script.

    Je suis totalement novice et ceci n'est juste pour me familiariser avec les scripts...

    Avec ce script, je vais écrire dans un fichier d'un utilisateur (utilisateur enregistré dans le passwd).

    Donc, avec un "read -p" , je demande le nom de l'utilisateur, ce qui me crée la variable $user et avec  la possibilité d'un appui de la touche q pour quitter le script.

    read –p "Utilisateur (q pour quitter) : " user

    Et c'est juste après que ça coince,  j’ai besoin de vérifier que : 

                     - Si j'appuie sur "q", on quitte le programme (pourquoi pas ne pas faire une fonction au début du script et l'appeler à ce moment elle pourrai être utile pour d’autre vérification).

                    - De vérifier que la variable $user n'est pas vide.

                    - De vérifier que la variable $user n'est pas = a $user_interdit (variable définie en dur au début du script).

    J’ai essayé les boucles, les conditions, des boucles dans des conditions, je ne trouve et comprend rien.

    Ceci est pour la partie de vérification de read -p.

    Par la suite, je souhaite vérifier dans mon passwd que la valeur de $user est bien présente.

    Avec ceci j'arrive à savoir si mon utilisateur existe ou pas :

    grep -w ^$user /etc/passwd > /dev/null;
    echo $?

    0 mon utilisateur existe

     1 mon utilisateur n’existe pas.

    Lorsque mon résultat  est  1 donc que mon utilisateur n’existe pas, je souhaiterai que  mon programme redemande la question du nom d’utilisateur  et reprenne le cycle de vérification depuis le début.

    J’espère avoir été assez clair dans mes explications.

    Autre question, la redirection de la sortie d’affichage  vers un fichier avec  '>>' ne fonctionne uniquement en su?

    Merci à tous par avance de vos réponses.

    -
    Edité par Eric24 5 février 2015 à 22:54:29

    • Partager sur Facebook
    • Partager sur Twitter

    Pensez au +1 pour ce qui vous ont aidés et n'oubliez pas de tagger votre sujet lorsqu'il est résolu.

      7 février 2015 à 22:59:52

      salut,

      $ until grep -qw "^$user" /etc/passwd; do echo "quel utilisateur ? "; read user; done; echo "$user est présent dans /etc/passwd"
      quel utilisateur ?
      broc
      quel utilisateur ?
      shnock
      quel utilisateur ?
      dan
      dan est présent dans /etc/passwd



      «Autre question, la redirection de la sortie d’affichage  vers un fichier avec  '>>' ne fonctionne uniquement en su?»

      je ne comprend pas. il manque le contexte.

      -
      Edité par dantonq 7 février 2015 à 23:01:20

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        8 février 2015 à 19:23:08

        sudo echo > un_fichier_root ne fonctionne pas car sudo s'applique à la commande, pas à la redirection.

        • Partager sur Facebook
        • Partager sur Twitter
          9 février 2015 à 10:59:29

          Bonjour,

          Dantonq => Je vais tester dans la soirée et merci.

          jo_link_noir => Je reviens vers toi avec plus de détail dans la soirée.

          • Partager sur Facebook
          • Partager sur Twitter

          Pensez au +1 pour ce qui vous ont aidés et n'oubliez pas de tagger votre sujet lorsqu'il est résolu.

            2 mars 2015 à 15:16:46

            Bonjour,

            Désolé pour se long silence à ceux qui  m'ont répondu et qui attendent des réponses de ma part.

            Donc Dantonq, j'ai testé se que tu m'as donné et sa fonctionne parfaitement, il ne me reste plus qu'a intégré la sortie du script si "q" est frappé.

            A tous les deux, pour la redirection " >> " en fais mon script doit permettre de rajouter des alias dans le .bashrc de l'utilisateur choisit précédemment.

            Donc le script s’exécute en su ou root (je part  du principe que c'est l'admin qui utilise le script.)

            Une fois l'utilisateur choisit, le script demande le nom de l'alias et le nom de la commande de base. Et je voulais utiliser >> pour intégrer les alias définis a la fin du fichier .bashrc de l'utilisateur.

            Le soucis, c'est que si je lance la commande echo blablabla >> mon_fichier; depuis mon terminal sa fonctionne mais depuis mon script, sa ne fonctionne pas.

            J'espère avoir été assez précis dans mon explication.

            -
            Edité par Eric24 2 mars 2015 à 16:16:00

            • Partager sur Facebook
            • Partager sur Twitter

            Pensez au +1 pour ce qui vous ont aidés et n'oubliez pas de tagger votre sujet lorsqu'il est résolu.

              2 mars 2015 à 20:11:44

              «sa ne fonctionne pas»

              soit, mais que se passe-t-il ?

              que ne se passe-t-il pas ?

              $ cat monScript 
              #!/bin/bash
              
              test $UID -eq 0 || {
                 echo "err: must be root"
                 exit 1
              }
              #
              echo "bla bla" >> monFichier
              #
              echo "contenu de \"monFichier\""
              cat monFichier
              $ chmod +x monScript
              $ ./monScript
              err: must be root
              $ su -c ./monScript
              Mot de passe : 
              contenu de "monFichier"
              bla bla
              $ su -c ./monScript
              Mot de passe : 
              contenu de "monFichier"
              bla bla
              bla bla



              -
              Edité par dantonq 2 mars 2015 à 20:15:14

              • Partager sur Facebook
              • Partager sur Twitter

              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                2 mars 2015 à 21:03:08

                Tu m'a perdu là....

                EDIT: La redirection >> fonction depuis mon script vers le fichier.

                en fait au lieu d'écrire echo blablabla >> mon_fichier je l'avais écris avec des " echo "blablabla >> mon_fichier";

                -
                Edité par Eric24 2 mars 2015 à 22:02:53

                • Partager sur Facebook
                • Partager sur Twitter

                Pensez au +1 pour ce qui vous ont aidés et n'oubliez pas de tagger votre sujet lorsqu'il est résolu.

                Vérification utilisateur script bash

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown