scripting shell e su

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

scripting shell e su

Messaggio 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...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
mofo
Linux 0.x
Linux 0.x
Messaggi: 71
Iscritto il: ven 16 mar 2007, 13:33

Messaggio da mofo »


Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio 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...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
ildiama
Linux 3.x
Linux 3.x
Messaggi: 536
Iscritto il: mar 27 dic 2005, 16:49
Slackware: mine
Kernel: 2.6.alto..
Desktop: KDE4
Località: Senigallia
Contatta:

Messaggio 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:)

Dani
Linux 4.x
Linux 4.x
Messaggi: 1447
Iscritto il: mer 26 apr 2006, 1:52
Desktop: gnome
Distribuzione: arch

Messaggio da Dani »

Non va bene su root -c "programma argomenti..." :?:

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio 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...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio 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...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
DaD
Linux 2.x
Linux 2.x
Messaggi: 371
Iscritto il: mer 7 feb 2007, 18:19
Nome Cognome: Antonio Barra
Slackware: 13
Kernel: 3.0
Desktop: KDE 4
Distribuzione: Mac OS X
Contatta:

Messaggio 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

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio 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
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
DaD
Linux 2.x
Linux 2.x
Messaggi: 371
Iscritto il: mer 7 feb 2007, 18:19
Nome Cognome: Antonio Barra
Slackware: 13
Kernel: 3.0
Desktop: KDE 4
Distribuzione: Mac OS X
Contatta:

Messaggio 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

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio 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... :)
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
urka58
Linux 3.x
Linux 3.x
Messaggi: 543
Iscritto il: mer 7 dic 2005, 23:29

Messaggio 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

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio 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
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio 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

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Messaggio 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...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Rispondi