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 :

Commande Grep : Rechercher et remplacer dans un dossier


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut Commande Grep : Rechercher et remplacer dans un dossier
    Bonjour à tous,

    Je suis à la recherche d'une aide pour me faire ma ligne de commande avec grep qui me permettrait de rechercher et remplacer sous certaines conditions. Je m'explique :

    Dans l'ensemble des fichiers de mon applis web, le compte admin et son mot de passe son écrit en dur dans un bon nombres de fichiers.

    Pour le mot de passe, on peut le trouver sous différentes formes :

    • "Password">admin</Parameter>
    • <AdminPassword>admin</AdminPassword>
    • <Password>admin</Password>
    • "password":"admin"
    • password=admin
    • <Property name="password">admin</Property>
    • <Parameter name="adminPassword">admin</Parameter>
    • <AdminPassword>admin</AdminPassword>



    Comme on peut s’apercevoir, il y a un point commun qui est que le mot "password" et "admin" se retrouve à chaque fois.
    Du coup, j'aimerai trouver une solution pour :

    • Effectuer une recherche qui va me trouver le mot "password" et "admin" sans prise en considération des minuscules et majuscule, caractère spéciaux...
    • Si l'ensemble de ces 2 éléments (password et admin) sont sur la meme ligne, alors m'afficher la chaîne de caractère qui matche et le nom du fichier correspond avec son emplacement


    En résumé comme un peu avec grep -Ir localhost: que j'avais appris sur ce forum

    Plus tard, quand la premiere ligne serait fonctionnelle, l'idée et de reprendre celle-ci pour que le mot de passe admin soit remplacé automatiquement par mon choix.

    Alors, vous me direz : Pourquoi pas faire une recherche et un remplacement tout simplement de admin ?
    Et bien je vous réponds Car dans les fichiers le compte administrateur est inscrit en dur et il s’appelle ; admin aussi...

    Merci à vous tous pour ce moment de partage

    Au plaisir de vous lire

    Christophe

  2. #2
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Alors,

    Ayant fait un peu le tour, faudra que j'utilise grep avec le -l (pour afficher les fichiers) et -r pour rechercher dans les sous-dossiers et enfin "-i" pour ne pas tenir compte des minuscules et des MAJUSCULES

    Toutefois comment dire à grep de faire une recherche pour démontrer sur une ligne que admin et password sont présent...

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

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    grep va de paire avec ce truc formidable que sont les expressions rationnelles (regular expressions ou regexp) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ grep -iE "password|admin" --color=auto fichier   # "password" ou "admin", l'un OU l'autre
    "Password">admin</Parameter>
    <AdminPassword>admin</AdminPassword>
    <Password>admin</Password>
    "password":"admin"
    password=admin
    <Property name="password">admin</Property>
    <Parameter name="adminPassword">admin</Parameter>
    <AdminPassword>admin</AdminPassword>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    grep -iE "password.*admin|admin.*password" --color=auto fichier  # l'un ET l'autre, soit d'abord "password" et plus loin "admin", soit l'inverse
    "Password">admin</Parameter>
    <AdminPassword>admin</AdminPassword>
    <Password>admin</Password>
    "password":"admin"
    password=admin
    <Property name="password">admin</Property>
    <Parameter name="adminPassword">admin</Parameter>
    <AdminPassword>admin</AdminPassword>

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par Tofdu31 Voir le message
    Dans l'ensemble des fichiers de mon applis web, le compte admin et son mot de passe son écrit en dur dans un bon nombres de fichiers.
    C'est pô bien!

    Pour la sécurité, il vaudrait mieux trouver une autre solution...

  5. #5
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,
    Citation Envoyé par Tofdu31 Voir le message
    Je suis à la recherche d'une aide pour me faire ma ligne de commande avec grep qui me permettrait de rechercher et remplacer sous certaines conditions
    Avec grep tu ne remplaceras pas grand chose

    Mais avec sed, sûrement
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    Citation Envoyé par jack-ft
    Pour la sécurité, il vaudrait mieux trouver une autre solution...
    quelques exemples ?
    de le lecture ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    Merci à tous pour vos informations.
    Afin d'apporter une brique à ce sujet, voici un ligne de code que l'on m'a fourni.

    Le souci, c'est que cette ligne fait une recherche et remplace l'information que j'ai donné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find -type f -exec sed -i 's|"password": "admin"|"password": "mon_nouveau_password"|g' {} \;
    Voilà donc le pourquoi de l'idée de recherche avec sur la meme ligne "password" et "admin"

    Au plaisir de vous lire

    Christophe

  8. #8
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Bonjour,

    Assez laconique la description du besoin, on comprend pas grand chose...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find -type f -exec awk '/password/i && /admin/i { print FILENAME,":",FNR,":",$0}' {} \;
    Là, les regex sont simplistes, mais en gros, ça affiche le nom du fichier, le numéro de ligne et la ligne si on trouve à la fois password et admin sur la ligne sans tenir compte de la casse, de l'ordre d'apparition ou si c'est juste une portion de mots...
    Cordialement.

  9. #9
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Pour les explications de mon cas, j'ai souhaité ne pas répéter mon premier post

    Dans tous les cas, un grand merci à toi, je teste et te fait un retour !

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    quelques exemples ?
    de le lecture ?
    Hélàs, je ne suis pas un spécialiste de la sécurité informatique. Ce n'était pas moi qui m'en occupais dans les projets auxquels j'ai participé, mais il me semble que la gestion des comptes était faite par l'accès à un LDAP...

    La question importante est:
    que se passe-t-il si un utilisateur demande l'affichage du code source (ctrl-U dans Firefox) ou demande un enregistrement de la page au format "page web complète"?

    Aura-t-il accès au password en clair?

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

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    @jack-ft @N_BaH c'est souvent pas évident, chaque service, chaque appli déboule avec son propre fichier de configuration, a sa propre base de mots de passe etc.

    d'un point de vue général l'idée c'est pour commencer de hasher+saler le mot de passe et éviter ainsi de stocker directement le mot de passe en clair, ensuite essayer d'éviter d'avoir X endroits où l'information est stockée, et effectivement LDAP est une bonne solution quand c'est possible

    dans certaines attaques le pirate peut parfois inclure des fichiers pour lire leur contenu, si les infos sont stockées dans un LDAP, sans dire que ça solutionne tout ça permettra de ralentir pas mal l'attaquant (et mettre des droits adéquats sur le répertoire qui contient les logs également)

Discussions similaires

  1. Shell - Rechercher et remplacer dans un fichier
    Par rom0607 dans le forum Linux
    Réponses: 3
    Dernier message: 12/06/2008, 20h59
  2. Rechercher un fichier dans un dossier
    Par GomuSan dans le forum Windows
    Réponses: 0
    Dernier message: 30/05/2008, 20h02
  3. recherche et remplacement dans Word >=2002
    Par jpg80150 dans le forum Access
    Réponses: 5
    Dernier message: 12/02/2007, 20h09
  4. [VBA] Rechercher et remplacer dans un champs
    Par virginie2 dans le forum Access
    Réponses: 2
    Dernier message: 19/07/2006, 11h19
  5. Afficher, rechercher et remplacer dans un fichier
    Par lynal dans le forum Langage
    Réponses: 1
    Dernier message: 13/06/2006, 21h24

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