Re: root OK sudo non OK : pourquoi ?

Page principale

Répondre à ce message
Auteur: Marc TERRIER
Date:  
À: guilde
Sujet: Re: root OK sudo non OK : pourquoi ?
Le 05/03/2018 à 14:35, BOITEUX, Frederic a écrit :
>     Bonjour,

>
> Ton erreur « !d': event not found » vient du bash, pas de sed : par défaut le caractère « ! » permet de rappeler une commande précédente en bash… Pour éviter ton souci, je pense qu'il faut que tu mettes un anti-slash devant ton ! pour qu'il ne soit pas interprété par bash ; attention, tu as aussi un $ dans ton expression sed. Tu peux essayer :
>
> $ sudo bash -c "sed 's/^#$//g; /./,/^$/\!d' jail.conf > jail.local"
>
> Mais peut-être faudra-t-il des \ supplémentaires, car il y a 2 niveaux de subsitutions : le bash où tu lances ton sudo, et celui lancé par ton sudo !
>
>     Cdlt,
>         Fred.


Bonjour,

Piste intéressante, les antislashs, mais je n'ai pas encore trouvé *la*
solution (excepté celle proposée par Christian) :

pi@raspi:/etc/fail2ban $ sudo bash -c "sed 's/^#$//g; /./,/^$/!d'
jail.conf > jail.local"
-bash: !d': event not found
pi@raspi:/etc/fail2ban $ sudo bash -c "sed 's/^#$//g; /./,/^$/\!d'
jail.conf > jail.local"
sed: -e expression n°1, caractère 19: commande inconnue: `\'
pi@raspi:/etc/fail2ban $ sudo bash -c "sed 's/^#$//g; /./,/^$/\\!d'
jail.conf > jail.local"
sed: -e expression n°1, caractère 19: commande inconnue: `\'
pi@raspi:/etc/fail2ban $ sudo bash -c "sed \'s/^#$//g; /./,/^$/!d\'
jail.conf > jail.local"
-bash: !d\': event not found
pi@raspi:/etc/fail2ban $ sudo bash -c "sed \\'s/^#$//g; /./,/^$/!d\\'
jail.conf > jail.local"
-bash: !d\\': event not found
pi@raspi:/etc/fail2ban $

Je découvre aussi, à cette occasion, que quand la commande provoque une
erreur comme le "!d': event not found", la commande n'est pas ajoutée
dans l'historique des commandes.

Mais ces histoires d'environnement et de niveaux de substitution sont
clairement des pistes intéressantes à creuser.

Merci.

--
Marc TERRIER