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 :

Vim + Blowfish2 : cat vers variable ?


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Par défaut Vim + Blowfish2 : cat vers variable ?
    Bonjour,
    Loin d etre un extpert en unix/shell mais j ai quelque base.

    j'ai genere un fichier de password avec VIM et blowfish2 avec une structure comme plus bas, et je souhaiterai creer un script qui fonctionnerai comme ceci : getsrvpassword -servername 'servXXX' -username 'userYYYY'

    Structure du fichier:

    Server123|user123|pass123
    Server1234|user1234|pass1234
    Server12345|user12345|pass12345.

    La partie qui me bloque le plus pour le moment c'est comment decrypter le fichier 'inline', pour l'instant mon seul acces en lecture est via VI/VIM.

    Merci pour votre aide.


    Ps: actuellement avec un clavier qwerty, desole, je suis deja dans la version du francais 4.0, sans accent et sans correcteur d'orthographe

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    j'ai pas tout compris perso, histoire de lever les ambiguïtés :
    • c'est quoi cette fonction/commande getsrvpassword ?
    • tu cherches en fait à faire un script (bash ?) qui lise ton fichier créé sous VIM et qui exécute la commande en prenant ses paramètres de manière automatique c'est ça ?
    • quand tu dis que ton seul accès en lecture est via VIM... j'ai du mal à me représenter la chose, tu n'as même pas la commande cat par exemple ? s'il s'agit de s'échapper de VIM (sournoisement ) il suffit de passer la commande :! bash pour retrouver un interpréteur

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2014
    Messages : 84
    Par défaut
    Si j'ai bien compris, tu as un fichier avec la liste des mots de passe et tu veux un script qui nécessite le nom du serveur et le nom de l'utilisateur pour renvoyer le mot de passe correspondant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #!/bin/bash
     
    servername=""
    username=""
    scriptname=getsrvpassword.sh
    listPassWord=listPassWord.txt
     
    Syntaxe="+ syntaxe : $scriptname -s nom du serveur  -u nom de l'utilisateur"
    while getopts ":s:u:" OPTION
    do
    	case $OPTION in
    		s) servername=$OPTARG
    		#echo "found server name :: "$OPTARG
    		;;
    		u) username=$OPTARG
    		#echo "found user name :: "$OPTARG
    		;;
    		\?) echo "*** OPTION \"$OPTARG\" inconnue !!!"
    		    echo $Syntaxe
    		;;
    		:)
    		;;
    	esac
    done
     
    password=$( cat ${listPassWord} | grep ${servername}'|'${username} | cut -d'|' -f3 )
    echo "Le mot de passe sur le serveur '"${servername}"' pour l'utilisateur '"${username}"' est '"${password}"'"
    Pour l'occasion, j'ai créé un fichier nommé listPassWord.txt contenant :
    Server123|user1|pass123
    Server123|user2|pass456
    Server123|user3|pass789
    Server123|user4|pass888
    Server1234|user1234|pass1234
    Server12345|user12345|pass12345
    test|toto|nada
    Pour ce script, j'ai un peu pompé à droite et à gauche + mes faibles connaissances en shell
    C'est l'avant dernière ligne qui fait 95% du boulot.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Par défaut
    Bonjour,
    merci pour vos reponses, ou effectivement c'est le nom d'une function que je souhaiterai creer.

    sauf que le fichier est crypte avec VIM et l encryption blowfish2

    the content of .vimencrypt
    set nobackup
    set noswapfile
    set nowritebackup
    set cm=blowfish2
    set viminfo=

    vim -u ~/.vimencrypt -x listPassWord.txt


    , un peu plus difficile

  5. #5
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    on peut s'en sortir apparemment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ cut -b-12 listPassWord.txt
    VimCrypt~03!
    $ vim -e -u .vimencrypt -c "%print" -c "q!" listPassWord.txt <<< "motdepassedufichier" | sed 's/|/ /g' | while read a b c
    do
       echo "a = $a, b = $b, c = $c"
    done
    a = Server123, b = user123, c = pass123
    a = Server1234, b = user1234, c = pass1234
    a = Server12345, b = user12345, c = pass12345
    mais bon, ça devient assez sale quand même, j'ai pas approfondi la question mais être obligé de transiter par VIM pour déchiffrer + avoir le mot de passe en clair sur la ligne de commandes, finalement ça serait aussi pertinent de tout mettre dans un fichier clair

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Par défaut
    Merci, Master BufferBod ,
    Le script sera disponible uniquement en execute.
    Le fichier est crypter par vim donc j'assume qu on doit passer par vim pour le decryptage , une fois que le script sera fini, il sera verouille.

    Merci encore,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Form vers variables session
    Par Goltar dans le forum ASP
    Réponses: 10
    Dernier message: 16/05/2012, 06h28
  2. Affecter le résultat d'un CAT à une variable
    Par bpdelavega dans le forum Linux
    Réponses: 8
    Dernier message: 24/05/2010, 16h41
  3. [Batch] problème lors de lecture de fichier vers variable
    Par snake-darkangel dans le forum Scripts/Batch
    Réponses: 13
    Dernier message: 04/11/2009, 14h05
  4. Liste déroulante vers variable
    Par gastoncs dans le forum Langage
    Réponses: 8
    Dernier message: 30/11/2007, 17h56
  5. variables globales vers variables de classe
    Par Chop_chop dans le forum C++
    Réponses: 4
    Dernier message: 06/04/2007, 17h52

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