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:
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.
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":
Public Sub Button1_Click()
Shell "xterm -e su -c \"qui_l'intero_comando\" \"$user\""
End