Debianizzati.Org | Forum | Blog | Guide | IRC
 
 
Forum Italiano Debian - Debianizzati.Org
Dicembre 05, 2008, 04:37:48 am *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Aiuto Ricerca Agenda Accedi Registrati  
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: [BASH] script connesione help!  (Letto 991 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
AcidRicky
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 10


Mostra profilo E-mail
« inserita:: Novembre 19, 2005, 12:27:18 am »

Ho realizzato un piccolo script per avviare la connesione di rete, lo script prima di connetersi effetua due verifiche ovvero: se il pc è gia connesso alla rete e se l'utente è loggato come root e nel caso in cui non lo sia lo script chiede la password di root, però non capisco per quale motivo inserita la password lo script si interrompe senza restituirmi alcun messaggio di errore, questo è il codice dello script:

Citazione

#!/bin/bash

ROOT_UID=0

if [ $UID  -eq $ROOT_UID ]

then
echo "sei root!"

else
echo "Digita password di root!";  su root || echo  "password errata! riavvia lo script!"; exit 0 #riga incriminata :sboing:

fi

if ping -w 1 10.0.0.2 # ip mio router :-)

then
echo "il pc è connesso alla rete!" ; exit 0

else

echo "il pc non è connesso alla rete! procedo alla connesione ..."

fi

dhclient

echo -n "connesione avvenuta con successo! [PRESS ENTER]"; read ; exit 0


A parte la soluzione grossolana per verificare la presenza della connessione facendo fare allo script un ping sul router e le infinite ridondanze del codice dovute alla mia scarsa conoscienza della bash (prometto che studierò!   :rtfm: ), potete spiegarmi perchè una volta inserita la password di root mi butta fuori dallo script?
Registrato

a Debian is forever
Ldonesty
Hero Member
*****

Karma: +9/-0
Scollegato Scollegato

Messaggi: 762



Mostra profilo E-mail
« Risposta #1 inserita:: Novembre 19, 2005, 12:44:44 am »

Forse l'exit 0 messo in quella forma non è "collegato" all'echo che hai scritto.. e quindi viene comunque eseguito.. sia che la password sia giusta sia quando è sbagliata...
Prova a fare un check dopo il "su" della variabile $?.. dovrebbe darti l'esito dell'ultima operazione, 0 se successo, !=0 altrimenti.
Codice:
io@Chiba:~$ su root
Password:
Chiba:/home/io# echo $?
0
Chiba:/home/io# exit
exit
io@Chiba:~$ su root
Password:
su: Authentication failure
Spiacente.
io@Chiba:~$ echo $?
1
io@Chiba:~$
Registrato

Il reggiseno e' uno strumento democratico perche' separa la destra dalla sinistra, solleva le masse e attira i popoli.
AcidRicky
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 10


Mostra profilo E-mail
« Risposta #2 inserita:: Novembre 19, 2005, 11:46:50 am »

Citazione
Prova a fare un check dopo il "su" della variabile $?.. dovrebbe darti l'esito dell'ultima operazione, 0 se successo, !=0 altrimenti.
dici di fare una cosa tipo questa? :
Citazione
#!/bin/bash
SUCESS=0
ROOT_UID=0

if [ $UID  -eq $ROOT_UID ]

then
echo "sei root!"

else
echo "Digita password di root!"; su root

fi

if  [ $? -eq $SUCESS ] # :idea:

 then
echo ""

 else
 echo "pass sbagliata..."; exit 0

 fi

 if ping -w 1 10.0.0.2

then
 echo "il pc è connesso alla rete!" ; exit 0

else

echo "il pc non è connesso alla rete! procedo alla connesione ..."

 fi

dhclient

echo -n "connesione avvenuta con successo! [PRESS ENTER]"; read ; exit 0

anche facendo questa modifica purtroppo lo script non va :cry: ma ho notato una cosa, una volta che lo script si interrompe e digito exit (per tornare ad essere user) mi continua lo script!

Citazione
root@vivaLV:/home/riccardo# exit
exit

PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.672 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.739 ms

--- 10.0.0.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.672/0.705/0.739/0.042 ms
il pc è connesso alla rete!

 :conf: forse in uno script non si può fare un su root,qualche idea?
Registrato

a Debian is forever
pistolinux
Full Member
***

Karma: +0/-0
Scollegato Scollegato

Messaggi: 194


Mostra profilo E-mail
« Risposta #3 inserita:: Novembre 22, 2005, 05:56:43 pm »

prova con su -c comando da eseguire ma non ti assicuro niente...
Il fatto è che cambi utente e quindi lo script deve cambiare la zona di memoria da cui legge le istruzioni e gli operandi, per questo se lanci "su" torna alla shell..
Registrato

mess with the best, :nono: die like the rest! :ave:
MaXeR
Administrator
Hero Member
*****

Karma: +42/-0
Scollegato Scollegato

Messaggi: 3424


161200863 maxer@knio.it
Mostra profilo WWW E-mail
« Risposta #4 inserita:: Novembre 22, 2005, 06:13:34 pm »

il problema dell'interruzione è dovuto ad una cosa semplice...
quando lanci il comando "su - root" viene aperta una shell... quindi lo script si ferma ed aspetta che l'esecuzione del comando su termini (giustamente)...

quindi la soluzione
Codice:
$su utente -c comando
è ok  :-D
Registrato


The_Noise
Administrator
Hero Member
*****

Karma: +25/-2
Scollegato Scollegato

Messaggi: 884



Mostra profilo E-mail
« Risposta #5 inserita:: Novembre 22, 2005, 08:23:10 pm »

... e nel caso di root non c'è neanche bisogno di scrivere root:

Codice:
su -c comando


Se hai veramente molto coraggio puoi vedere una implementazione qui con su e sudo contemporaneamente:

makemplayer

 :ciauz:

EDIT: Corretto il link, ora punta alla pagina di presentazione dello script, dato che altervista non permette il link diretto dei file.
Registrato
AcidRicky
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 10


Mostra profilo E-mail
« Risposta #6 inserita:: Novembre 25, 2005, 06:38:40 pm »

grazie per la dritta ora lo script funziona correttamente  :s2:
scusate se nn vi ho risposto prima ma in questi giorni sono stato molto impegnato

ciao :ciauz:
Registrato

a Debian is forever
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Altri Topic Correlati
Oggetto Aperta da Risposte Visite Ultimo messaggio
[BASH] Script per spegnere in automatico il computer. Scripting « 1 2 » perseus 15 2808 Ultimo messaggio Aprile 11, 2006, 06:36:02 pm
da The_Noise
[BASH] Script per l\'accesso locale Scripting balubeto 5 790 Ultimo messaggio Agosto 23, 2006, 01:10:25 am
da metaldaze
[Script Bash] per runnare file C Scripting cs_cruzeiro 4 606 Ultimo messaggio Ottobre 02, 2007, 01:25:16 am
da cs_cruzeiro
[risolto]: Bash: script di cancellazione selettiva (l'analisi è dubbia, la codifica di più) Scripting loerian 4 550 Ultimo messaggio Maggio 25, 2008, 11:50:43 am
da Finn
[risolto]: Script Bash per aggiornare il Sistema con un click Scripting njkjta 6 703 Ultimo messaggio Settembre 23, 2008, 11:33:08 pm
da njkjta
Powered by MySQL Powered by PHP Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC XHTML 1.0 valido! CSS valido!
Pagina creata in 0.093 secondi con 20 interrogazioni al database.