Bonjour,

J'essaye de modifier un script existant.
En gros, le script doit lancer cette commande:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
iptables -I INPUT -s ${IP} -m limit --limit 5/min -j LOG --log-prefix "Access Denied by OSSEC-HIDS" --log-level 7
Si IP est defini, cette commande fonctionne correctement en ligne de commande.

Maintenant, la maniere dont est fait le script, la commande est lancee de cette facon:

Avec les variables definies de cette facon:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
IPTABLES=/sbin/iptables
ARG="-I INPUT -s ${IP} -m limit --limit 5/min -j LOG --log-prefix \"Access Denied by OSSEC-HIDS\" --log-level 7"
Le probleme se passe a la substition des variables, j'explique:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$set -x
+ set -x
$ ${IPTABLES} ${ARG}
+ /sbin/iptables -I INPUT -s 12.12.12.12 -m limit --limit 5/min -j LOG --log-prefix '"Access' Denied by 'OSSEC-HIDS"' --log-level 7
Bad argument `Denied'
Le probleme vient de la substitution de \"Access Denied by OSSEC-HIDS\",
c'est transforme en '"Access' Denied by 'OSSEC-HIDS"' donc en 4 parametres au lieu de 1.

Savez-vous comment je peux resoudre ce probleme?

Je precise que c'est pour modifier un script existant et que je garde comme contrainte cette facon de lancer l'executable et ses parametres

Merci!

David.