Gambas Y Permisos Como Root (SOLUCIONADO)


Subject: 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:


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


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

crear_pasos
crear_compact
SHELL "gksudo chmod +x /tmp/compact.sh" WAIT
SHELL "gksudo xterm /tmp/compact.sh" WAIT


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.

Last edited by Pablo-GNU on Wednesday, 27 January 2010, 19:22; edited 2 times in total
Profile PM  
Subject: Re: Gambas Y Permisos Como Root
Citar:

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.


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

Subject: 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 &\""

Profile PM  
Subject: 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.

Subject: Re: Gambas Y Permisos Como Root
Pablo-GNU escribió: [Ver mensaje]
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 &\""


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

Profile PM  
Subject: 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.

Profile PM  

Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1243s (PHP: -34% SQL: 134%)
SQL queries: 24 - Debug Off - GZIP Enabled