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 :

remplacer une ligne contenant / avec la commande sed


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club Avatar de GoldenEyes
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Points : 50
    Points
    50
    Par défaut remplacer une ligne contenant / avec la commande sed
    Salut
    je veux remplacer une ligne dans /etc/passwd
    comme suit :
    polycom:502:502::/home/polycom:/bin/bash =>
    polycom:502:502::/home/polycom:/sbin/nologin
    pour cela j'ai utilise la commande sed :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    val1='home/polycom:/bin/bash'
    val2='home/polycom:/bin/nobody'
    sed "/^$val1/s/= .*$/= $val2/" file1
    mais j'ai eu ce message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ./test.sh
    + val1=home/polycom:/bin/bash
    + val2=home/polycom:/bin/nobody
    + sed '/^home/polycom:/bin/bash/s/= .*$/= home/polycom:/bin/nobody/' file1
    sed: -e expression #1, char 9: extra characters after command
    pouvez vous m'aider ,
    merci d'avance pour tout aide

  2. #2
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Salut,

    J'essaierai plutot ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sed "s%home/polycom:/bin/bash%home/polycom:/bin/nobody%" file1

  3. #3
    Membre du Club Avatar de GoldenEyes
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Points : 50
    Points
    50
    Par défaut script contenant su -
    Citation Envoyé par Winnt Voir le message
    Salut,

    J'essaierai plutot ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sed "s%home/polycom:/bin/bash%home/polycom:/bin/nobody%" file1
    Salut ,
    Merci pour la reponse ca marche tres bien ,
    j'ai essaye de faire un script qui log en root
    je tape le mot de passe , mais apres il execute pas la suite des commandes ?
    comment je pourais faire pour executer les commandes apres su ?
    Merci d'aavnce pour tout aide ,

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    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 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Bonjour,

    Une fois le mot de passe entre, tu es dans un nouveau shell, qui n'a pas connaissance de l'ancien, et donc ne sait rien de ton script.

    Pour resoudre ton probleme, je te conseille de te pencher sur sudo (super user do), qui est exactement ce dont tu as besoin.

  5. #5
    Membre chevronné

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Points : 1 894
    Points
    1 894
    Par défaut
    question con, pourquoi ne pas utiliser usermod pour changer le shell ?!

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Salut,
    Changer de shell est une consequence de su (indesirable dans ce cas), ce n'est pas le but
    Sinon, +1 pour sudo, c'est le plus simple sans ce cas. Tu peux aussi faire su a la main avant de lancer le script, ou bien rendre le script suid root (je n'est jamais fait ca parce que c'est un peu barbare compare a sudo mais je ne vois pas pourquoi ca ne marcherait pas).

Discussions similaires

  1. Remplacer une ligne complète avec SED
    Par cdjkhdjlhxjklnjskznj dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 09/04/2015, 13h35
  2. Commande pour remplacer une ligne dans un fichier.txt
    Par ludobspp dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 07/11/2013, 08h19
  3. [Batch] Gestion de lignes vide avec la commande sed
    Par DeVit dans le forum Scripts/Batch
    Réponses: 18
    Dernier message: 20/10/2009, 19h06
  4. sed: remplacer une ligne qui commence par Version
    Par lili2704 dans le forum Linux
    Réponses: 8
    Dernier message: 21/07/2008, 14h26
  5. Réponses: 9
    Dernier message: 22/05/2006, 12h21

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