Pagina 1 di 2

scripting shell e su

Inviato: lun 17 set 2007, 12:42
da danix
ciao a tutti,
in un altro mio post cercavo un'alternativa a kdesu usando le gtk, esiste gksu però, come mi ha confermato il buon gohanz per installarlo occorre portarsi dietro mezza installazione di GSlacky, allora ho pensato di scrivere uno script che faccia uso di Xdialog, una libreria scritta in gtk che permette di dotare di una gui gli script shell...

La mia idea era di fare in modo che Xdialog chiedesse preventivamente la password all'utente e poi lanciasse su, gli desse la password in pasto per poi lanciare il programma con i diritti di root... credete sia possibile fare una cosa del genere??

Sapreste darmi qualche spunto da cui partire per creare questo script??

Grazie mille a tutti...
A presto...

Inviato: lun 17 set 2007, 12:51
da mofo

Inviato: lun 17 set 2007, 13:55
da danix
richiede le gnome-libs... a me serve qualcosa desktop agnostic, per questo volevo provare a fare uno script del genere...
Grazie mille della segnalazione comunque...

A presto...

Inviato: lun 17 set 2007, 14:44
da ildiama
danix85 ha scritto:
richiede le gnome-libs... a me serve qualcosa desktop agnostic, per questo volevo provare a fare uno script del genere...
Perché non prendi il codice e provi a renderlo magari solo con gtk o qt?
Quante righe di codice saranno mai sto xsu? Potrebbe essere anche un bell'esercizio..

PS: (tutto questo per dire che a livello di scripting posso aiutarti poco :lol:)

Inviato: lun 17 set 2007, 15:15
da Dani
Non va bene su root -c "programma argomenti..." :?:

Inviato: lun 17 set 2007, 18:57
da danix
Dani ha scritto:Non va bene su root -c "programma argomenti..." :?:
è proprio quello che voglio ottenere, ma graficamente :) non sono nemmeno in grado di seguire il consiglio di ildiama, non ho tutta questa esperienza di programmazione...

grazie mille...

Inviato: lun 17 set 2007, 20:32
da danix
se riesco a capire come funziona la redirezione in bash forse riesco a creare lo script...
ditemi cosa c'è di sbagliato...

Codice: Seleziona tutto

password=passworddiroot
su <echo -e "$password\n"
 
proprio non riesco a capire...

PS
mi è venuto il dubbio che nessuno mi aiuti per paura che io stia partecipando alla gara di scripting bash...
ci tengo a precisare:
NON STO PARTECIPANDO ALLA GARA PER VINCERE IL COFANETTO DI SLACKWARE 12... :D

chiarita questa cosa, qualcuno mi potrebbe dare una mano??
In cambio mi offro come cavia per testare qualche script per la gara... ;)

Grazie mille a tutti...

Inviato: lun 17 set 2007, 21:55
da DaD
Ok ora posso aiutarti ora :D, a parte gli scherzi penso che questo possa fare al caso tuo.

Codice: Seleziona tutto

$ dialog --title "Inserisci l'input" --clear --inputbox "Password root" 16 51 2
Con qeusto puoi leggerti facilmente l'input del box :D

Inviato: lun 17 set 2007, 22:00
da danix
Grazie della risposta DaD, ma non mi è molto utile, il mio problema non è come far scrivere la password all'utente, ma come darla in pasto a su...
lo script che ho postato prima era semplicemente una cosa molto semplificata di quello che ho intenzione di fare... alla fine userò Xdialog, che usa le gtk, per prendere l'input da parte dell'utente, ma mi serve sapere come redirigerlo a su che mi chiede la password...

Ancora grazie mille per la risposta...

A presto

Inviato: lun 17 set 2007, 22:23
da DaD
Okiz capito, questo dovrebbe andare bene, poi te lo adatti te alle xdialog ;)

Codice: Seleziona tutto

$ cat -n prova_dialog
     1  #!/bin/sh
     2  read_var=`read_var 2>/dev/null`
     3  dialog --title ";O;" --clear --inputbox "metti qua" 16 51 2> $read_var
     4  c=$?
     5
     6  case $c in
     7    0)    echo "pwd è `cat $read_var`";;
     8    1)    echo "ciao!";;
     9  esac

Inviato: lun 17 set 2007, 22:30
da danix
:) non devo essermi spiegato bene prima... quello che non riesco a fare, non è ritrovarmi la password, ma passarla a "su"...
quando lancio su mi viene chiesta la password... e io non so come instradare la password inserita dall'utente all'input di su...
per il resto ho ben chiaro come "chiederla" all'utente e metterla in una variabile, ma poi questa variabile come la indirizzo a su??

mi sono spiegato meglio??

Grazie per la pazienza DaD... :)

Inviato: mar 18 set 2007, 0:44
da urka58
Non ho capito bene se il fatto di inserire la password è tassativo o se va bene che il programma possa essere eseguito come utente root..
Ad esempio se hai un file di xyz.txt proprietà root:root e lo vuoi cancellare
puoi usare uno script

Codice: Seleziona tutto

#!/bin/sh

kdesu -c rm $1 2> /dev/null
lanci lo script tipo

script.sh xyz,txt
ti viene chesta la password di root dal box di kde e dopo conferma lo script cancella il file

Se invece vuoi eseguire lo script (anche Kommander) come root inserisci lo script nel menu di avvio di kde e spunti la casella "esegui come altro utente" (root) e il programma avrà i provilegi di root.

Spero di essere stato di qualche aiuto
ciao

Inviato: mar 18 set 2007, 0:51
da danix
per rendere l'idea, io vorrei creare una cosa simile a kdesu, il programmino di kde che permette di inserire la password e avviare un determinato programma come root, solo che io non sono su kde ma su fluxbox, e di programmi alternativi del genere non ce ne sono, gli unici che ci sono richiedono mezza installazione di gnome per funzionare, e non è quello che avevo in mente... se riuscissi a redirigere una variabile verso l'input della password di su potrei usare l'interfaccia Xdialog per richiedere la password all'utente e poi eseguire il programma...
Ma a questo punto mi sa che non è proprio facilissimo realizzare una cosa del genere...

Spero di essermi spiegato :)

A presto

Inviato: mar 18 set 2007, 1:46
da targzeta
Da quello che ho capito, il tuo problema è irrisolvibile :(. Il comando "su" non prende l'input dallo "standard input", ma direttamente dal suo terminale (il file /dev/tty). Questo vuol dire che non puoi effettuare ridirezioni di nessun tipo. Se ci pensi è anche ragionevole ai fini della sicurezza, altrimenti uno lancia un programma che prova e riprova password, alla fine la becca.

Dovresti vedere nei sorgenti di "su" se puoi ricompiarlo con delle opzioni diverse, in questo modo potresti utilizzare una tua versione di su. Ma forse non è quello che vuoi.

Spina

Inviato: mar 18 set 2007, 13:46
da danix
ciao spina,
grazie della risposta... questa cosa di su che non prende l'input dallo SI non la sapevo e ti ringrazio per il chiarimento, a questo punto credo che lascerò perdere il bash scripting e proverò a scrivere qualcosa di semplice in python...
L'idea di ricompilare su per ottenere lo scopo (ammesso che sia possibile) non mi interessa a priori perchè volevo qualcosa di portabile, tutti possono usare un semplice script bash, ma se per usarlo devono anche mettere su ricompilato credo che pochi si fiderebbero :) (forse non mi fiderei nemmeno io :D )

Ancora grazie mille per l'aiuto :)

PS
già che ci sei mi diresti se quell'esempio di redirezione andava bene (ammesso che su accettasse lo SI come input) ??
Avrei voluto usare un descrittore ma non ho ben capito come assegnarli e in ogni caso non so se si possono assegnare alle variabili... :)
Il bash scripting, questo sconosciuto...

A presto, e ancora grazie...