Portál AbcLinuxu, 10. května 2025 11:21
#!/bin/bash iptables=`which iptables` # reset() { $iptables -X $iptables -F INPUT $iptables -F OUTPUT $iptables -F FORWARD } .... atd.problem je, ze kdyz spustim sh firewall.sh tak to ohlasi
`irewall.sh: line 4: syntax error near unexpected token `{ `irewall.sh: line 5: `reset() {nekde jsem cetl, ze za to muze moct windowsacky zpusob ukoncovani radku, ale prebootoval jsem do linuxu a ulozil jsem to znovu tam a nepomohlo to .... Help? PS: Tohle jsem jeste nedelal, kamos mi poslal svuj skript, poupraviljsem si ho pro svoje potreby. Sam jsem skript krome rc.local nepotreboval ...
#!/bin/bash firewall=`which iptables` reset() { $firewall -X $firewall -F INPUT $firewall -F OUTPUT $firewall -F FORWARD } start() { # DEFAULTNE VSE ZAHAZUJEM $firewall -P INPUT DROP $firewall -P OUTPUT ACCEPT $firewall -P FORWARD ACCEPT ... atd.odpoved:
[root@localhost samba]# sh ipt.sh : command not found : command not found 'pt.sh: line 5: syntax error near unexpected token ` 'pt.sh: line 5: `reset()BTW v tom puvodnim prispevku melo byt v obou pripadech "line 4"
Je to skutečně obrácený apostrof, není to nějaký unicodový ekvivalent typu "left single quote"? Když bude nejhůř, použijte '$(...)
'.
Mimochodem, to mazání provádíte dost nešťastně. Pokud se budete na uživatelský řetězec odkazovat z nějakého pravidla ve standardním (a to nejspíš budete), dojde při 'iptables -X
' k chybě. Lepší by bylo
iptables -F iptables -X
Já jsem hlavně nikdy nepochopil, k čemu má být dobrá ta proměnná (leda že by to bylo tak, že to tam všichni v příkladech píší, tak to od nich všichni opisují - asi jako aktivaci RP filtru). Zejména kombinace
iptables=`which iptables` $iptables -X
mi připadá docela uhozená.
tr -d '\r' < vas_skript.sh > novy_nazev.sh
.
Zavadeni nove promenne pomoci iptables=`which iptables`
je opravdu zbytecne. Potrebujete tam uvest celou cestu k tomu programu (z bezpecnostnich duvodu). Neco jako iptables=/usr/sbin/iptables
.
Potrebujete tam uvest celou cestu k tomu programu (z bezpecnostnich duvodu). Neco jako iptables=/usr/sbin/iptables
.
Z jakých bezpečnostních důvodů? Pokud je útočník schopen rootovi změnit hodnotu proměnné PATH
, pak to, že se v tomto konkrétním skriptu zavolá špatný iptables
, už je celkem zanedbatelná drobnost…
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.