Foros del Web » Administración de Sistemas » Unix / Linux »

Problemas con " en un shellscript

Estas en el tema de Problemas con " en un shellscript en el foro de Unix / Linux en Foros del Web. Hola, Estoy haciendo un mini-firewall con iptables + un miniscript en shell script (Bash). De momento estoy logeando todo el trafico en syslog... para ello ...
  #1 (permalink)  
Antiguo 05/02/2006, 16:56
 
Fecha de Ingreso: marzo-2005
Mensajes: 114
Antigüedad: 19 años, 1 mes
Puntos: 0
Problemas con " en un shellscript

Hola,

Estoy haciendo un mini-firewall con iptables + un miniscript en shell script (Bash).

De momento estoy logeando todo el trafico en syslog... para ello tengo esto:

Código:
iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "firewall "
Es decir, lo guardo via syslog y añado el prefijo "firewall ", notese el espacio al final de la cadena prefix "firewall ". Es importante el espacio del final ya que si no se solapa... con la siguiente cadena, ejemplo:

Correcto:

Cita:
Feb 6 00:47:59 linux kernel: firewall IN= OUT=eth0 SRC=10.10.10.10 DST=10.10.10.11 LEN=40 TOS=0x00 PREC=0x00 TTL=45 ID=57270 PROTO=TCP SPT=46519 DPT=860 WINDOW=2048 RES=0x00 SYN URGP=0
Mal:

Cita:
Feb 6 00:47:59 linux kernel: firewallIN= OUT=eth0 SRC=10.10.10.10 DST=10.10.10.11 LEN=40 TOS=0x00 PREC=0x00 TTL=45 ID=57270 PROTO=TCP SPT=46519 DPT=860 WINDOW=2048 RES=0x00 SYN URGP=0
El prefijo puede variar y como va a aparecer en varios sitios.. he preparado una variable para almacenar esa cadena, en concreto lo que tengo es esto:

Código:
LOG="-j LOG --log-prefix \"firewall \""
iptables -A INPUT -p tcp --dport 22 $LOG
Al ejecutar obtengo este error:

Cita:
# /etc/init.d/firewall.sh
Bad argument `"'
Try `iptables -h' or 'iptables --help' for more information.
He probado de muchisimas formas, sin exito... ¿Alguna forma de solucionar este problema? Gracias!
  #2 (permalink)  
Antiguo 05/02/2006, 17:24
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Que te sale si haces un

echo $LOG

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #3 (permalink)  
Antiguo 05/02/2006, 17:30
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
A mi me sale esto

-j LOG --log-prefix "firewall "

O sea que esta bien lo que estas haciendo. Intenta probar con comillas sencillas...

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #4 (permalink)  
Antiguo 05/02/2006, 18:01
 
Fecha de Ingreso: marzo-2005
Mensajes: 114
Antigüedad: 19 años, 1 mes
Puntos: 0
Como bien dices, haciendo un "echo" sale correctamente... he probado con comillas simples, dobles, escapandolas, etc.. y no es posible.. :(

¿Alguna pista?
  #5 (permalink)  
Antiguo 05/02/2006, 18:09
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
¿Porque no vas probando quitandole y poniendole cosas hasta mirar donde te pasa el error. Empieza de la parte mas obvia hasta que llegues a la parte que te interesa, poco a poco a ver donde se produce el error.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:18.