Re: lug-bg: export IPTABLES
- Subject: Re: lug-bg: export IPTABLES
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Thu, 16 Dec 2004 17:58:04 +0200
On Thu, Dec 16, 2004 at 05:36:17PM +0200, Doncho N. Gunchev wrote:
> On 2004 12 16 (Thursday) 16:59, Denislav Ganchev wrote:
> > Следната случка:
> >
> > prompt# export TEMP=" -A block_check -s 10.0.0.0/255.255.0.0 -i ! eth1
> > -m limit --limit 3/min -j LOG --log-prefix \"spoofed packet:\"
> > --log-level 7"
> >
> > Това горното е един ред. После:
> >
> > prompt# iptables $TEMP
> >
> > И гарми по следниа начин:
> >
> > Bad argument `packet:"'
> > Try `iptables -h' or 'iptables --help' for more information.
> >
> > С сигурност синтаксиса е правилен на цялата команда ако не е изпълнена
> > така като променлива на средата(опциите за iptables). Това нещо е в
> > скрипт, но просто го изолирах за да го обясня по-лесно. Оправих си по
> > друг начин проблема просто ми е интересно защо се получава така. Какво
> > ли не правих опитвах не става и не става. Оправя се само ако няма
> > разстояние между spoofed и packet.
> >
> TEMP=" -A block_check -s 10.0.0.0/255.255.0.0 -i ! eth1 -m limit --limit 3/min -j LOG --log-prefix \"spoofed packet:\" --log-level 7"
> for i in $TEMP; do
> echo "[$i]"
> done
> ...
> ["spoofed]
> [packet:"]
> ...
> Разпознават се като отделни елементи.
> TEMP=(-A block_check -s 10.0.0.0/255.255.0.0 -i ! eth1 -m limit --limit 3/min -j LOG --log-prefix "spoofed packet:" --log-level 7)
> for i in "${TEMP[@]}"; do echo "[$i]"; done
> ...
> [--log-prefix]
> [spoofed packet:]
> [--log-level]
> [7]
> За друго решение за момента не се сещам.
Да де, ама това с масивите е bash-specific :(
Вярно е, че моето решение с апострофите не работи... може да се провери
със следния прост скрипт:
$ cat ~/bin/words.sh
#!/bin/sh
while [ $# -gt 0 ]; do
i="$1"
shift
echo "param $i"
done
Това нещо показва точно параметрите, които му подаваш.
Намерих решение, което обаче е отвратително грозно от гледна точка на
това, което прави всъщност: кара те да внимаваш много, ама МНОГО, за
shell metacharacters като $, (), `` и други разни такива глупости.
$ VAR1="foo"
$ VAR2="bar"
$ TEMP="a b c $VAR1 d e f 'spoofed packet' g h i $VAR2"
$ eval "words.sh $TEMP"
param a
param b
param c
param foo
param d
param e
param f
param spoofed packet
param g
param h
param i
param bar
$
Това с eval не го препоръчвам на никого, но все пак работи :((
Поздрави,
Петър
--
Peter Pentchev roam@xxxxxxxxxxx roam@xxxxxxxx roam@xxxxxxxxxxx
PGP key: http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553
This sentence every third, but it still comprehensible.
Attachment:
pgpmRWGJe_qg1.pgp
Description: PGP signature
|