Linux en Espanol
 
Invocar scripts con parametros (tema #24736)
Publicar nuevo tema  Responder al tema    Foros de discusión -> Programación
Autor Mensaje
matiaswsr
Forista


Registrado: 2007-08-03
Mensajes: 74

Publicado: 2013-06-21 21:15:34    Asunto: Invocar scripts con parametros

Hola.

Estoy haciendo un cgi que a su vez llama a un script que ya esta hecho, y que debe recibir uno o dos parametros.

El problema que estoy teniendo es que no se como invocar desde dentro del cgi al script con sus parametros...

O sea lo llamo sin problemas pero siempre me dice que no recibe parametros, por ejemplo:
./script.sh par1 par2
No me da resultado, si los pongo entre comillas doble o simples tampoco...
?cual es la manera correcta de pasarle parametros al script desde un cgi html?
AnimAlf
Forista


Registrado: 2008-08-18
Mensajes: 786

Publicado: 2013-06-22 04:44:35    Asunto:

?? cgi en qu? lenguaje
matiaswsr
Forista


Registrado: 2007-08-03
Mensajes: 74

Publicado: 2013-06-22 17:01:39    Asunto:

Utilizando BASH y html...
Desde el cgi le paso un parametro al script pero no lo toma...

O sea yo le paso una ruta absoluta desde el cgi, que en realidad es un archivo, pero el script cuando le llega el parametro no interpreta que es una ruta absoluta y me dice que no existe el archivo. ?se entiende?

./script par1

Donde par1 = /home/marcos/archivo.txt
matiaswsr
Forista


Registrado: 2007-08-03
Mensajes: 74

Publicado: 2013-06-22 19:33:33    Asunto:

Creo que el problema esta porque la ruta absoluta la obtengo a partir de la $query_string que me pasa la pagina html al cgi, dicho string lo guardo en una variable, y esa variable es lo que le paso al script despues como ruta al archivo.

Seguramente no lo interprete como ruta por ser un string, ?es correcto?
AnimAlf
Forista


Registrado: 2008-08-18
Mensajes: 786

Publicado: 2013-06-22 22:26:13    Asunto:

No lo estoy entendiendo.

?cgi en bash?

?En qu? lenguaje programas el cgi?
matiaswsr
Forista


Registrado: 2007-08-03
Mensajes: 74

Publicado: 2013-06-23 05:38:22    Asunto:

Si correcto, en bash y alli meto el codigo html.

Despues de casi 36 horas de hacer pruebas descubri que el error no era la ruta, sino que era de permisos.
Quien ejecuta el script es el usuario apache el cual no tenia permisos para llegar a cualquier ruta dentro del sistema, por lo tanto daba error pero sin tirar una idea del porque del error.

Ahora puse al usuario apache dentro del grupo de root realice varias pruebas con diferentes rutas a archivos y no hubo dramas.

Error de permisos no de otra cosa...quede loco buscando el problema, pero por suerte lo saque!

gracias y saludos
AnimAlf
Forista


Registrado: 2008-08-18
Mensajes: 786

Publicado: 2013-06-23 14:38:15    Asunto:

[quote:6299d64548="tatolin"]Si correcto, en bash y alli meto el codigo html.[/quote:6299d64548]
Cuando hablamos de cgi ... no referimos a cosas como estas: [url=http://www.linuxespanol.com/viewtopic.php?t=21407]CGI Shell Script[/url]

No es una buena idea que hagas los cgi en bash. S?lo los debes poder utilizar en la m?quina que mantienes y es peligroso.

[quote:6299d64548="tatolin"]Quien ejecuta el script es el usuario apache el cual no tenia permisos para llegar a cualquier ruta dentro del sistema, por lo tanto daba error pero sin tirar una idea del porque del error.[/quote:6299d64548]
Puedes antes de intentar operar en una ruta, comprobar los privilegios. M?rate las expresiones condicionales (man bash)

[code:1:6299d64548] -a file
True if file exists.
-b file
True if file exists and is a block special file.
-c file
True if file exists and is a character special file.
-d file
True if file exists and is a directory.
-e file
True if file exists.
-f file
True if file exists and is a regular file.
-g file
True if file exists and is set-group-id.

...
...[/code:1:6299d64548]

[quote:6299d64548="tatolin"]Ahora puse al usuario apache dentro del grupo de root realice varias pruebas con diferentes rutas a archivos y no hubo dramas.[/quote:6299d64548]
Muy mala idea. Rectifica eso. Mejor a?ade esas rutas al grupo que pertenece Apache y dale permiso a su grupo (no puedes darle privilegios de administrador, es un peligro).

[quote:6299d64548="tatolin"]Error de permisos no de otra cosa...quede loco buscando el problema, pero por suerte lo saque!
[/quote:6299d64548]
Gracias son para t?, no te ayudamos, lo sacaste s?lo. Enhorabuena.
matiaswsr
Forista


Registrado: 2007-08-03
Mensajes: 74

Publicado: 2013-06-23 19:22:25    Asunto:

AnimAlf, gracias por vuestros consejos...
Dado que todo funciona, ahora estoy estudiando como mejorar lo ya realizado.
A?adir el usuario apache al grupo root es un gran error! pero me sirvio para entender los errores que tenia, lo hice, lo probe y funciono, ahora hay que buscar la altenativa conociendo donde estaban las fallas y donde esta la vulnerabilidad ahora, y me quedo con tu sugerencia!!

He leido por todos lados que no es bueno hacer eso, pero tenia que hacerlo para entender si era eso...

Gracias por vuestros consejos...seran tenidos en cuenta.
En cuanto a hacer el CGI con bash script, tambien lei todas las desventajas de hacer esto, pero es parte de mi aprendizaje, tenia que hacerlo...

Saludos y gracias





La marca registrada Linux (R) se usa siguiendo la sublicensia obtenida del "Linux Mark Institute",
el LICENCIATARIO exclusivo de Linus Torvalds, propietario de la marca en EEUU y otros países
The registered trademark Linux (R) is used pursuant to a sublicense from the Linux Mark Institute,
the exclusive LICENSEE of Linus Torvalds, owner of the mark in the U.S. and other countries