<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JD&#039;s Blog &#187; CHMOD</title>
	<atom:link href="http://www.jdsblog.it/tag/chmod/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jdsblog.it</link>
	<description>no, Scrubs non c&#039;entra proprio niente.</description>
	<lastBuildDate>Mon, 22 Feb 2010 16:08:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Generare password casuali da console</title>
		<link>http://www.jdsblog.it/informatica/478/generare-password-casuali-da-console/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=generare-password-casuali-da-console</link>
		<comments>http://www.jdsblog.it/informatica/478/generare-password-casuali-da-console/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 14:50:25 +0000</pubDate>
		<dc:creator>JD</dc:creator>
				<category><![CDATA[CLI]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[CHMOD]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[terminale]]></category>

		<guid isPermaLink="false">http://www.jdsblog.it/?p=478</guid>
		<description><![CDATA[Alcuni metodi per generare password casuali sfruttando una console GNU/Linux]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-240" title="Tango Terminal" src="http://www.jdsblog.it/wp-content/uploads/2009/06/icon.tango.terminal.png" alt="Tango Terminal" width="64" height="64" />Mi è capitato diverse volte di avere la necessità di generare una <strong>password casuale</strong> e in passato la soluzione più veloce che utilizzavo di solito era <strong>digitare in Google</strong> &#8220;random password generator&#8221;. Questa soluzione però oltre ad essere <strong>scomoda</strong> (richiede una connessione ad internet ed un browser web) <strong>non è</strong> neanche molto <strong>sicura</strong>.<br />
In Ubuntu, e in genere in qualunque altra distribuzione GNU/Linux, esistono <strong>metodi molto più sicuri e pratici</strong> per generare una password.<span id="more-478"></span></p>
<p>Il più comodo e veloce consiste nell&#8217;<strong>installare il pacchetto pwgen</strong>:</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:630px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> pwgen</div></div>
<p>Questo software permette di generare <strong>password facili da ricordare</strong>, pur mantenendo alto il livello di sicurezza. Se invece non interessa generare password facilmente memorizzabili e si preferisce avere delle <strong>password completamente random</strong> si può utilizzare l&#8217;<strong>opzione <span style="font-family: courier new,courier;">-s</span></strong>. Sono presenti <strong>molte altre opzioni</strong> che permettono ad esempio di evitare caratteri simili (1 e l, 0 e O) e di impostare la lunghezza e il numero delle password generate. Per l&#8217;elenco di tutte le opzioni disponibili consiglio la lettura della <strong>manpage di pwgen</strong>:</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:630px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">man</span> pwgen</div></div>
<p>Se non è possibile/non si vuole installare il pacchetto pwgen è possibile <strong>generare</strong> delle <strong>buone password</strong> casuali sfruttando i tools messi a disposizione <strong>dalla console</strong>.</p>
<p>Ad esempio per <strong>generare 4 password di 8 caratteri alfanumerici</strong> sarà sufficiente digitare in un terminale la seguente stringa:</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:630px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>urandom <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">tr</span> <span style="color: #660033;">-dc</span> <span style="color: #ff0000;">'a-zA-Z0-9'</span> <span style="color: #000000; font-weight: bold;">|</span> fold <span style="color: #660033;">-w</span> <span style="color: #000000;">8</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">head</span> <span style="color: #660033;">-n</span> <span style="color: #000000;">4</span></div></div>
<p>Per aumentare il livello di sicurezza della password è possibile <strong>aggiungere altri caratteri non alfanumerici</strong>, come ad esempio <span style="font-family: courier new,courier;">_!@#$%^&amp;*()+[]|:&lt;&gt;?=</span>:</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:630px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>urandom <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">tr</span> <span style="color: #660033;">-dc</span> <span style="color: #ff0000;">'a-zA-Z0-9-_!@#$%^&amp;*()+[]|:&lt;&gt;?='</span> <span style="color: #000000; font-weight: bold;">|</span> fold <span style="color: #660033;">-w</span> <span style="color: #000000;">8</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">head</span> <span style="color: #660033;">-n</span> <span style="color: #000000;">4</span></div></div>
<p>Se si vuole <strong>essere sicuri che</strong> la password <strong>contenga almeno un carattere speciale</strong> è necessario aggiungere un grep al comando precedente:</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:630px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>urandom <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">tr</span> <span style="color: #660033;">-dc</span> <span style="color: #ff0000;">'a-zA-Z0-9-_!@#$%^&amp;*()+[]|:&lt;&gt;?='</span> <span style="color: #000000; font-weight: bold;">|</span> fold <span style="color: #660033;">-w</span> <span style="color: #000000;">8</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-i</span> <span style="color: #ff0000;">'[_!@#$%^&amp;*()+|:&lt;&gt;?=]'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">head</span> <span style="color: #660033;">-n</span> <span style="color: #000000;">4</span></div></div>
<h3>Perché urandom al posto di random?</h3>
<p>Qualcuno potrebbe domandarsi perché utilizzo il &#8220;meno sicuro&#8221; urandom al posto di random. Prima di spiegare il motivo riporto la manpage dei due dispositivi kernel:</p>
<div class="codecolorer-container text geshi codecolorer-noborder" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:630px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">I file speciali a caratteri /dev/random e /dev/urandom (presenti sin da<br />
Linux 1.3.30) forniscono un'interfaccia al &nbsp;generatore &nbsp;del &nbsp;kernel &nbsp;di<br />
numeri aleatori. Il file /dev/random ha numero primario 1 e numero sec‐<br />
ondario 8. Il file /dev/urandom ha numero primario 1 &nbsp;e &nbsp;numero &nbsp;secon‐<br />
dario 9.<br />
<br />
Il &nbsp;generatore &nbsp;di numeri aleatori raccoglie rumore di fondo dai device<br />
driver e da altre sorgenti nel pozzo d'entropia. Il generatore mantiene<br />
anche &nbsp;una &nbsp;stima del numero di bit di rumore nel pozzo di entropia. Da<br />
questo pozzo di entropia vengono creati i numeri aleatori.<br />
<br />
Quando viene letto, /dev/random restituisce &nbsp;solo &nbsp;un &nbsp;numero &nbsp;di &nbsp;byte<br />
aleatori &nbsp;compatibili &nbsp;con &nbsp;la &nbsp;stima &nbsp;dei &nbsp;bit &nbsp;di &nbsp;rumore &nbsp;nel &nbsp;pozzo<br />
d'entropia. /dev/random dovrebbe essere adatto ad usi che richiedono un<br />
alto &nbsp;grado &nbsp;di &nbsp;aleatorietà, &nbsp;come la generazione di chiavi. Quando il<br />
pozzo d'entropia è vuoto, le letture di &nbsp;/dev/random &nbsp;vengono &nbsp;bloccate<br />
finché non viene raccolto abbastanza rumore ambientale.<br />
<br />
Quando &nbsp;viene letto, /dev/urandom restituisce tanti byte quanti ne sono<br />
stati richiesti. Di conseguenza, se non &nbsp;c'è &nbsp;abbastanza &nbsp;entropia &nbsp;nel<br />
pozzo &nbsp;d'entropia, i valori restituiti sono teoricamente vulnerabili ad<br />
un attacco criptografico sull'algoritmo usato &nbsp;dal &nbsp;dispositivo. &nbsp;Nella<br />
letteratura &nbsp;(non coperta da segreto militare) non c'è conoscenza di un<br />
metodo per fare ciò, ma è in teoria &nbsp;possibile &nbsp;che &nbsp;esista &nbsp;un &nbsp;simile<br />
metodo. &nbsp;Se questo è fonte di problemi per il proprio programma, si usi<br />
invece /dev/random.</div></div>
<p>Leggendo la manpage si intuisce che <strong>urandom è più veloce</strong> perché «restituisce tanti byte quanti ne sono stati richiesti» a discapito del grado  di  aleatorietà, ma quanto è più veloce? Scopriamolo con <strong>un test pratico</strong>.</p>
<p>Prima proviamo a generare una <strong>password di 10 caratteri sfruttando urandom</strong>:</p>
<div class="codecolorer-container text geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:630px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ time cat /dev/urandom | tr -dc 'a-zA-Z0-9-_!@#$%^&amp;*()+{}|:&lt;&gt;?=' | fold -w 10 | grep -i '[!@#$%^&amp;*()_+{}|:&lt;&gt;?=]' | head -n 1<br />
bzNHI}6w:h<br />
<br />
real&nbsp; &nbsp; 0m0.024s<br />
user&nbsp; &nbsp; 0m0.004s<br />
sys 0m0.024s</div></div>
<p>E ora facciamo la <strong>stessa cosa con random</strong>:</p>
<div class="codecolorer-container text geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:630px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ time cat /dev/random | tr -dc 'a-zA-Z0-9-_!@#$%^&amp;*()+{}|:&lt;&gt;?=' | fold -w 10 | grep -i '[!@#$%^&amp;*()_+{}|:&lt;&gt;?=]' | head -n 1<br />
^C<br />
<br />
real&nbsp; &nbsp; 131m14.400s<br />
user&nbsp; &nbsp; 0m0.012s<br />
sys 0m0.036s</div></div>
<p><strong>La differenza è <span style="color: #ff0000;">abissale</span></strong>: urandom ha impiegato solamente <strong>24 millesimi di secondo</strong> (0.024 secondi) mentre random <strong>dopo 2 ore 11 minuti e 14 secondi</strong> non aveva ancora terminato! Ho <strong>interrotto manualmente</strong> con un CTRL+C. E il test non è stato fatto su un 486SX a 25MHz, ma su un <strong>Intel Core2 Quad Processor Q9450</strong>.<br />
Considerando che «nella letteratura (non coperta da segreto militare) <strong>non c&#8217;è conoscenza di un metodo</strong>» per effettuare un attacco criptografico sui valori generati da urandom, mi sento di consigliare <strong>urandom per la generazione di password</strong> <img src='http://www.jdsblog.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jdsblog.it/informatica/478/generare-password-casuali-da-console/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CHMOD ricorsivo di directory o files</title>
		<link>http://www.jdsblog.it/informatica/gnulinux/cli/26/chmod-ricorsivo-di-directory-o-files/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=chmod-ricorsivo-di-directory-o-files</link>
		<comments>http://www.jdsblog.it/informatica/gnulinux/cli/26/chmod-ricorsivo-di-directory-o-files/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 11:28:28 +0000</pubDate>
		<dc:creator>JD</dc:creator>
				<category><![CDATA[CLI]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[CHMOD]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[terminale]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.leinardi.com/?p=26</guid>
		<description><![CDATA[Due semplici comandi che permettono di cambiare in modo ricorsivo i permessi solamente dei files o delle directory.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-240" title="Tango Terminal" src="http://www.jdsblog.it/wp-content/uploads/2009/06/icon.tango.terminal.png" alt="Tango Terminal" width="64" height="64" />Il mese scorso, in occasione dell&#8217;uscita di <a href="http://www.ubuntu-it.org/news/227/32/Rilasciato-Ubuntu-9-04.shtml" target="_blank">Jaunty Jackalope</a>, mi è capitato di dover migrare il filesystem del mio portatile da ReiserFS a Ext4.<br />
Non avendo sufficiente spazio libero sul fisso per un backup della partizione ho chiesto in prestito a mio padre il suo box USB da 500GB suddiviso in 2 partizioni da 250GB, una ReiserFS e una NTFS.<br />
Non riuscendo a salvare tutto sulla Reiser ho dovuto copiare alcune directory sulla partizione NTFS per poi trasferirle sulla nuova partizione Ext4 del portatile.<br />
Il problema è che nel passaggio da Raiser a NTFS sono andati persi tutti i permessi di files e directory, sostituiti con pessimo 777.</p>
<p>Fortunatamente la console, come sempre accade, ci viene in aiuto:</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:630px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-type</span> d <span style="color: #660033;">-exec</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">755</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> \;</div></div>
<p>Con il comando soprastante si vanno a cambiare in modo ricorsivo tutti i permessi delle sole directory.</p>
<p>Se invece si vogliono cambiare i permessi dei files è sufficiente sostituire il tipo da <em>d</em> a <em>f</em>:</p>
<div class="codecolorer-container bash geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:630px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-type</span> f <span style="color: #660033;">-exec</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">644</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> \;</div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.jdsblog.it/informatica/gnulinux/cli/26/chmod-ricorsivo-di-directory-o-files/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
