Password di root nei propri programmi


Ci sono volte in cui nello scrivere i propri programmi si ricorra ai comandi che GNU/Linux offre da riga di comando. Scegliere questo approccio semplifica la vita ai programmatori rendendo i programmi più leggeri e sfruttando appieno la più potente delle “armi” *nix: il terminale!

Si sa però (basta avere un minimo di dimestichezza con il mondo del pinguino) che ci sono dei comandi che possono essere eseguiti solo dall’amministratore del sistema che nei sistemi operativi GNU/Linux prende il nome di root. Quand si prova ad eseguire un comando da amministratore viene chiesta la password, ovvero la password di root. Come fare allora a restituire al sistema questa parola chiave in maniera sicura? Il primo problema che sorge infatti è la sicurezza. Trasmettere una parola così delicata in chiaro significherebbe compromettere quella sicurezza su cui il sistema operativo libero basa la sua diffusione. Ovviamente ci sarebbe la possibilità di criptare la parola digitata e poi decriptarla solo per permettere al comando del terminale di leggerla, ma questo renderebbe il programma alquanto complesso. Come fare allora?
Se si sta sviluppando un programma ad interfaccia grafica e si lavora su sistemi *buntu e derivate è possibile usare due ottimi strumenti gksudo e ksudo; entrambi svolgono lo stesso lavoro ma la differenza tra i due è che uno lavora in ambiente GNOME e l’altro in ambiente KDE. Essi vanno a sostituire il normale uso di sudo in modo che al momento di immettere la password di root si presenti una finestra che vada ad agevolare il lavoro di trasmissione della stessa al comando senza compromettere la normale sicurezza del sistema e quindi del nostro codice.

ESEMPIO

Immaginiamo di voler installare un normale software mediante terminale. Il comando sarebbe

sudo apt-get install programma

e il terminale ci mostrebbere la classica richiesta

[sudo] password for user:

Se invece sostuiamo il comando con

gksudo apt-get install programma

allora ci si presenta davanti una finestra nella quale immettere la parola chiave.

In questo modo si può con molta praticità eseguire comandi da root senza preoccuparsi di gestire la correttezza della sua password.

E’ da precisare che qualora il comando da eseguire con permessi di root prevede alcuni parametri contraddistinti dal segno – allora tale comando va chiuso tra apici.

ESEMPIO:

gksudo 'cat -h'

Qualora sappiate se questo metodo funziona anche con altri sistemi o conoscete per altre distro che svolgano lo stesso lavoro vi chiedo di segnalarmelo per poter completare il post.