{"id":223,"date":"2009-09-16T22:54:00","date_gmt":"2009-09-16T22:54:00","guid":{"rendered":"http:\/\/e-ware.org\/blog\/?p=223"},"modified":"2009-09-16T22:54:00","modified_gmt":"2009-09-16T22:54:00","slug":"password-di-root-nei-propri-programmi","status":"publish","type":"post","link":"http:\/\/e-ware.org\/blog\/password-di-root-nei-propri-programmi\/","title":{"rendered":"Password di root nei propri programmi"},"content":{"rendered":"<div><span><br \/>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\u00f9 leggeri e sfruttando appieno la pi\u00f9 potente delle &#8220;armi&#8221; *nix: il terminale!<\/p>\n<p>Si sa per\u00f2 (basta avere un minimo di dimestichezza con il mondo del pinguino) che ci sono dei comandi che possono essere eseguiti solo dall&#8217;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 \u00e8 la sicurezza. Trasmettere una parola cos\u00ec delicata in chiaro significherebbe compromettere quella sicurezza su cui il sistema operativo libero basa la sua diffusione. Ovviamente ci sarebbe la possibilit\u00e0 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?<br \/>Se si sta sviluppando un programma ad interfaccia grafica e si lavora su sistemi *buntu e derivate \u00e8 possibile usare due ottimi strumenti gksudo e ksudo; entrambi svolgono lo stesso lavoro ma la differenza tra i due \u00e8 che uno lavora in ambiente GNOME e l&#8217;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.<\/p>\n<p><\/span><span>ESEMPIO<\/span><span><\/p>\n<p>Immaginiamo di voler installare un normale software mediante terminale. Il comando sarebbe<\/p>\n<p><code>sudo apt-get install programma<\/code><\/p>\n<p>e il terminale ci mostrebbere la classica richiesta<\/p>\n<p><code>[sudo] password for user:<\/code><\/p>\n<p>Se invece sostuiamo il comando con<\/p>\n<p><code>gksudo apt-get install programma<\/code><\/p>\n<p>allora ci si presenta davanti una finestra nella quale immettere la parola chiave.<\/p>\n<p>In questo modo si pu\u00f2 con molta praticit\u00e0 eseguire comandi da root senza preoccuparsi di gestire la correttezza della sua password.<\/p>\n<p>E&#8217; da precisare che qualora il comando da eseguire con permessi di root prevede alcuni parametri contraddistinti dal segno &#8211; allora tale comando va chiuso tra apici.<\/p>\n<p><\/span><span>ESEMPIO:<\/span><span><\/p>\n<p><code>gksudo 'cat -h'<\/code><\/p>\n<p>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.<\/span><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>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\u00f9 leggeri e sfruttando appieno la pi\u00f9 potente delle &#8220;armi&#8221; *nix: il terminale! Si sa per\u00f2 (basta avere un minimo di dimestichezza con [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[52,2,4],"tags":[],"class_list":["post-223","post","type-post","status-publish","format-standard","hentry","category-didattica","category-gnulinux","category-opencode"],"views":1171,"_links":{"self":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts\/223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/comments?post=223"}],"version-history":[{"count":0,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts\/223\/revisions"}],"wp:attachment":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/media?parent=223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/categories?post=223"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/tags?post=223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}