-
Bash & Log-in
Mi sto (seppur lentamente) avvicinando alla "programmazione" (se cosi' si può dire) in bash.
Per un piccolo proggetto che sto realizzando avrei bisogno di poter effettuare il Log-in come root per poi effettuare delle operazioni e quindi effettuare il log out.
Se provo con il comando che uso di solito da shell e cioè "su" riesco a fare il log-in ma poi l'esecuzione dello script si ferma li (cioè dopo avermi chiesto la passwword ed aver effettuato con successo il log-in)
Esiste un modo per riuscire ad effettuare il login senza fermare l'esecuzione deilo script??
-
si, apri un'altra console, al momento di eseguire le operazioni root...
ciao!!
giaco
-
non ho capito bene. stai cercando forse un programma come sudo?
-
Visto che non riesco a spiegarvelo meglio passiamo all'esempio pratico:
File test.sh
Codice:
#!/bin/bash
echo "Cambio le proprieta di tutti i file contenuti nella cartella corrente..."
echo "Effettuo il Login da root..."
su
echo "login effettuato"
#e qui lo script continua...
e questo è quello che la shell mi sputa fuori...
Codice:
*****@vector ***** $ ./test.sh
Cambio le proprieta di tutti i file contenuti nella cartella corrente...
Effettuo il Login da root...
Password:
root@vector ***** #
dove ***** rappresenta l'user che sto usando in quel momento e la sua HomeDir
Come potete vedere lo script si ferma dopo che ho inserito la password (in teoria infatti dovrebbe printare login effettuato) (ps. su è l'equivalente di sudo se non sbaglio)
-
dovresti usare sudo. io purtroppo su questo non so aiutarti, perché non mi sono mai interessato molto.
dopodiché, esegui i comandi con: sudo comando
non sono molto esperto sul bash scripting, però questo è un metodo poco elegante ma funzionale
-
Allora, arrivo un pochino in ritardo, avevo un bel po' di cose da fare ultimamente :winkOLD:
Vediamo un po' se posso aiutarti a risolvere il tuo problema.
Come ha già detto Rommel puoi utilizzare il comando "sudo".
Questo comando ti permette di eseguire altri comandi (scusa il gioco di parole) con i permessi di utente root.
Per poter utilizzare sudo devi prima configurarlo.
Il file di configurazione si chiama sudoers e si trova nella cartella /etc.
Come al solito consiglio di leggere un po' il man prima di effettuare modifiche.
Intanto però ti scrivo una base che può tornarti utile per il tuo script.
Composizione del file sudoers
Codice:
# User alias specification
# Qui va specificato un alias per i vari utenti in modo
User_Alias TEST = utente1,utente2,utenteX
# Cmnd alias specification
# In questa sezione puoi specificare i comandi che posso essere eseguiti
# un esempio è la riga sottostante
Cmnd_Alias WEB_START=/etc/rc.d/rc.httpd start
# User privilege specification
# In questa sezioe sono elencati i privilegi dei vari utenti
# root esegue tutto!
root ALL=(ALL) ALL
#Il gruppo di utenti TEST può soltanto far partire il demone httpd
TEST ALL=WEB_START
a questo punto salvi tutto e dai i permessi 0440 al file sudoers
Il tuo file di configurazione per sudo è ora pronto, non ti resta che inserire all'interno del tuo script, quando vuoi eseguire il comando come root la seguente stringa :
Codice:
sudo -u root [comando da eseguire]
terminati i tuoi comandi vari inserisci sempre all'interno del tuo script questa riga:
serve per "svuotare la cache prima del tempo", in modo tale che al prossimo utilizzo ti richieda nuovamente la password.
ATTENZIONE
1 - Studiati bene i comandi da far eseguire, le rogne sono ovunque e rischi di compromettere la sicurezza.
2 - La password da presentare alla richiesta, NON E' QUELLA DI ROOT, ma quella dell'utente che ha lanciato lo script.
Spero di essere stato d'aiuto.
Ciao
Leandro
Happy Slack!