Autore Topic: [Risolto] Possibile bug nella funzione "Desktop.RunAsRoot()"  (Letto 665 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
[Risolto] Possibile bug nella funzione "Desktop.RunAsRoot()"
« il: 23 Settembre 2012, 14:16:59 »
La funzione Desktop.RunAsRoot dovrebbe consentire di lanciare un comando bash come root. Per poterla richiamare nel codice è necessario impostare anche il componente: gb.desktop.

Esempio di suo utilizzo:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

   Desktop.RunAsRoot("cat /dev/ttyUSB1")

End

si dovrebbe aprire una finestra di Terminale, nella quale inserire la propria parola-chiave di root. In questo esempio specifico si vedrebbero i dati provenienti dalla porta seriale ttyUSB1.


A me succede che ottengo in console questo tipo di avviso:
   /tmp/gambas.1000/3328/xdg-utils/xdg-su: 361: /tmp/gambas.1000/3328/xdg-utils/xdg-su: xterm: not found


Volevo chiedervi di fare il medesimo esperimento, per verificare se è un bug comune, oppure se è un problema limitato a me.
« Ultima modifica: 23 Settembre 2012, 14:43:00 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Possibile bug nella funzione "Desktop.RunAsRoot()"
« Risposta #1 il: 23 Settembre 2012, 14:32:57 »
Non è un bug.
Il messaggio di errore dice che non trova il programma xterm, ovvero il terminale XTERM non è installato.
Inoltre il metodo RunAsRoot utilizza il comando su di bash per eseguire ciò che gli passi. Nelle distribuzioni Ubuntu based bisognerebbe usare sudo!
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Possibile bug nella funzione "Desktop.RunAsRoot()"
« Risposta #2 il: 23 Settembre 2012, 14:42:38 »
Non è un bug.
Il messaggio di errore dice che non trova il programma xterm, ovvero il terminale XTERM non è installato.
Sì, giusto. Ho provveduto ad installare xterm ed adesso funziona.
Grazie, sotema.


Inoltre il metodo RunAsRoot utilizza il comando su di bash per eseguire ciò che gli passi. Nelle distribuzioni Ubuntu based bisognerebbe usare sudo!
...comunque, funziona anche con su.


Si può anche usare la "Shell":
Codice: gambas [Seleziona]

Public Sub Button1_Click()

   Shell "xterm -e su -c \"qui_l'intero_comando\" \"$user\""

End
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »