Bonjour,
J'essaye de modifier un script existant.
En gros, le script doit lancer cette commande:
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:
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:
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.
Partager