https://foro.gambas-es.org/viewtopic.php?f=1&t=378
-----------------------------------
Pablo-GNU
Lunes, 25 Enero 2010, 22:20

Gambas Y Permisos Como Root (SOLUCIONADO)
-----------------------------------
Bueno mi pregunta no se si es sencilla, pero me ha dado quebraderos de cabeza en otro proyecto y para intentar hacerlo mejor, pues me gustaria saber lo siguiente, el programa que estoy haciendo tiene que formatear una memoria compact flash. Yo en mi otro programa lo que hacia era crear un fichero con las instrucciones dentro en forma de salto de linea y pasarselo al comando fdisk de esta manera:


[code linenumbers=false syntax=gambas]PUBLIC FUNCTION crear_pasos()
DIM contenido3 AS String
DIM destino3 AS String
destino3 = "/tmp/pasos.d"
contenido3 = ("p" "\n" "d" "\n" "x" "\n" "h" "\n" "16" "\n" "s" "\n" "63" "\n" "c" "\n" "1987" "\n" "r" "\n" "n" "\n" "p" "\n" "1" "\n" "1" "\n" "1748" "\n" "n" "\n" "p" "\n" "2" "\n" "1749" "\n" "1987" "\n" "w")
File.Save(destino3, contenido3)

END

PUBLIC FUNCTION crear_compact()
DIM contenido4 AS String
DIM destino4 AS String
destino4 = "/tmp/compact.sh"
contenido4 = ("#!/bin/bash" "\n" "sudo umount " & part1 & ";" "\n" "sudo fdisk " & unidad & " < /tmp/pasos.d")
File.Save(destino4, contenido4)

END
[/code]

Y mas adelante al darle al boton las ejecutaba de esta manera

[code linenumbers=false syntax=gambas]crear_pasos
crear_compact
SHELL "gksudo chmod +x /tmp/compact.sh" WAIT
SHELL "gksudo xterm /tmp/compact.sh" WAIT[/code]

Mi pregunta es... no hay ninguna manera de que yo pueda ejecutar el programa (que hace mas cosas que necesitan permisos de su, como un dd y mas cosas) Para que solo me pida la clave de usuario al darle al boton de ejecutar y no tener que crear yo "scripts" que sean ejecutados en el sistema de esa manera? porque claro lo que me interesaria seria poder hacer cono un EXEC y recojer la salida para ir rellenando una barra de progreso. Anteriormente intente hacerlo con un EXEC pero al no pedirme la clave de mi usuario, no consegui hacerlo funcionar... Desde ya muchas gracias.


-----------------------------------
fabianfv
Martes, 26 Enero 2010, 12:58

Re: Gambas Y Permisos Como Root
-----------------------------------
[quote]
Mi pregunta es... no hay ninguna manera de que yo pueda ejecutar el programa (que hace mas cosas que necesitan permisos de su, como un dd y mas cosas) Para que solo me pida la clave de usuario al darle al boton de ejecutar y no tener que crear yo "scripts" que sean ejecutados en el sistema de esa manera? porque claro lo que me interesaria seria poder hacer cono un EXEC y recojer la salida para ir rellenando una barra de progreso. Anteriormente intente hacerlo con un EXEC pero al no pedirme la clave de mi usuario, no consegui hacerlo funcionar... Desde ya muchas gracias.
[/quote]

¿Has consultado el capítulo 4 del libro de Gambas referido al manejo de procesos ?


-----------------------------------
Pablo-GNU
Miercoles, 27 Enero 2010, 13:38

Re: Gambas Y Permisos Como Root
-----------------------------------
Si el tema ya lo tengo solucionado, en el libro no encontre nada, aunque a ver si me llega hoy en español el libro en papel a casa, que he decidido comprarlo y con tiempo prometo subirlo en buena calidad...

lo he resuelto con un 

SHELL "echo " & contraseña & " | sudo -S xterm -e ' dd if=\"" & origen &\"" " of=\"" & destino &\""


-----------------------------------
fabianfv
Miercoles, 27 Enero 2010, 15:34

Re: Gambas Y Permisos Como Root
-----------------------------------
Genial, gracias por compartir la solución.

Cuando tenga tiempo revisaré la documentación porque Gambas permite ejecutar un proceso y comunicarse con él como si se tratara de un stream y esa característica creo que te permitiría hacer exactamente lo que buscabas.

Saludos cordiales.


-----------------------------------
AGarcia
Sabado, 15 Enero 2011, 22:26

Re: Gambas Y Permisos Como Root
-----------------------------------
[quote user="Pablo-GNU" post="2151"]Si el tema ya lo tengo solucionado, en el libro no encontre nada, aunque a ver si me llega hoy en español el libro en papel a casa, que he decidido comprarlo y con tiempo prometo subirlo en buena calidad...

lo he resuelto con un 

SHELL "echo " & contraseña & " | sudo -S xterm -e ' dd if=\"" & origen &\"" " of=\"" & destino &\""[/quote]

¿Como relleno los campos contraseña, origen y destino?
Soy novato y no entiendo mucho de programación...


-----------------------------------
soplo
Domingo, 16 Enero 2011, 05:43

Re: Gambas Y Permisos Como Root (SOLUCIONADO)
-----------------------------------
son simples strings. Tu puedes definir un string así
dim Clave as string="123456"

y en tu código
SHELL "echo " & Clave & " | sudo -S xterm -e ' dd if=\"" & origen &\"" " of=\"" & destino &\""

O podrías preguntarlo en un textbox por ejemplo que se llamara PideClave
SHELL "echo " & PideClave.text & " | sudo -S xterm -e ' dd if=\"" & origen &\"" " of=\"" & destino &\""

U obtenerlo de unos settings 
SHELL "echo " & settings["Datos/Clave"] & " | sudo -S xterm -e ' dd if=\"" & origen &\"" " of=\"" & destino &\""

No se si te estoy entendiendo bien.


