IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

un script pour recuperer les utilisateurs connectés sur une machine


Sujet :

Shell et commandes GNU

  1. #1
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut un script pour recuperer les utilisateurs connectés sur une machine
    Bonjour,
    j'ai en fait à recuperer les adresses emails des utilisateurs (seulement ceux qui ont un compte sur ma machine) l'adresse email se trouve bien dans le 6eme champs du fichier /etc/passwd.Mon script a comme parametre le nom de l'utilisateur
    mon script est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/bash
    #d'abord je verifie si l'utilsateur a un compte ou pas
    #apres je redirige le resultat dans un fivhier nommé fich 11
    cat /etc/passwd |grep -i $1>>fich11
    #je lis e fichier 
    cat fich 11 | while read line;do
    if [ $line ] ;then
    cut -d : -f6 fich11
    else echo "utilisateur non existant"
    fi
    done
    le probleme c est que ce bout de code n'a pas marché..je recupere en fait le 6eme champs de fichier /etc/passwd mais non pas seulement le 6emes champs des données de mon utilisateur

  2. #2
    Débutant
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 97
    Points
    97
    Par défaut
    aucune reponse?,je sais pas si mon probleme est clair pour vous ou non.si non je peux reformuler mon probleme

  3. #3
    Membre confirmé Avatar de herzleid
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2002
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Juin 2002
    Messages : 393
    Points : 509
    Points
    509
    Par défaut
    Salut,

    Alors pour commencer, cat | grep sert à rien. tu fais directement un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep mon_pattern monfichier
    puis tu test le retour de la commande (la valeur de $?). Si $?=1 alors ton grep n'a pas trouvé ton "client". Si $?=0 alors c'est tout bon.

    Apres j'ai pas bien compris ce qui va pas

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 148
    Points : 28 113
    Points
    28 113
    Par défaut
    Bonjour,

    Que penses-tu de ce script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #!/bin/bash
     
    grep $1 /etc/passwd 2>&1 >/dev/null
    if [ $? -eq 0 ]
    then
            grep $1 /etc/passwd | awk -F':' '{ print $6 }'
    else
            echo "user not found"
    fi
    Amélioration à apporter :
    Ne pas parser deux fois /etc/passwd. Dans le cas où on passe par un fichier intermédiaire, penser à vérifier la non-existence de celui-ci au début du script, et s'il y a création de ficheir(s) temporaire(s) par le script, penser à bien les enlever à la fin dudit script.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    pourquoi faire une boucle si le script recoit l'utilisateur a rechercher via l'argument ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #!/bin/bash
    mail=$(grep -q $1 /etc/passwd | cut -d: -f6)
    if [[ $mail = "" || -z $mail  ]]
    then
       echo $mail
    else
       echo "utilisateur inconnu"
    fi
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

Discussions similaires

  1. utilisateur connectés sur une partition
    Par lionman dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 20/06/2011, 00h21
  2. Connaitre les users connectés sur une instance
    Par LBO72 dans le forum Administration
    Réponses: 5
    Dernier message: 02/03/2010, 17h45
  3. [AC-2003] Code pour afficher les utilisateurs connectés à une BDD
    Par LionelDM dans le forum IHM
    Réponses: 2
    Dernier message: 07/01/2010, 18h04
  4. utilisateurs connectés sur une base
    Par captainamerica75 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 20/02/2006, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo