sabato 28 febbraio 2009

Reale e virtuale mescolati

Importanti "rivoluzioni" in campo informatico sono avvenute, in passato, con l'evoluzione delle interfacce tra la macchina e l'uomo. I primi computer comunicavano con schede perforate, poi si è passati a monitor e tastiera con il "prompt dei comandi" (i primi computer che ho usato io erano ancora così); la vera rivoluzione fu però l'avvento del mouse e dei sistemi "a finestre" (Mac, poi Windows, senza entrare in dispute sull'attribuzione dei meriti); attualmente sono già diffusissimi i sistemi "touch screen" (chi ha uno smartphone sicuramente li usa quotidianamente) o addirittura "multitouch" (iPhone) dove viene riconosciuto il tocco di più dita contemporaneamente.
E domani?
Raccolgo qui un po' di notizie già "vecchie" di qualche mese, che secondo me, dipingono bene verso cosa stiamo andando. Alcune sembreranno scomode e inutilizzabili o vi faranno esclamare: "Io una cosa del genere non la userò mai!". Prima di fare questi pensieri, però, provate ad andare indietro con la mente di una decina di anni: com'erano i cellulari, vi ricordate quegli oggetti "enormi" che "ma a cosa serve?, ne posso fare tranquillamente a meno!"? Io ero tra quelli che la rensavano così. Non ne avete forse uno in tasca ora?
Veniamo alle novità. Il denominatore comune sembra quello di mescolare la realtà con il mondo virtuale portando il virtuale nel reale o viceversa. Ma meglio guardare gli esempi: valgono più di mille parole
.
Un bell'esempio di tecnologia multitouch alla Microsoft
Computer "indossabile" costruito al MIT
CamTrax, un software (gratuito!) che permette, tramite la webcam, di usare una cosa qualsiasi per controllare il pc
La "realtà aumentata" che cita Paolo Attivissimo in un suo post
e siamo solo all'inizio!

mercoledì 11 febbraio 2009

Recupero accesso di amministratore

Recupero dell'accesso di amministratore (root) in un sistema linux Ubuntu e riflessione sulla sicurezza dei dati.
Vi racconto un'altra esperienza di "recupero" di un danno dovuto, questa volta, ad un errore umano e non ad un guasto hardware. Non è nulla di particolarmente "innovativo" ma spero possa servire a qualcuno che si dovesse trovare nella stesa situazione. Cercherò di spiegarlo con parole semplici, senza dare nulla per scontato.
Premessa. In un sistema linux esiste un "super utente" che ha la possibilità di vedere e modificare ogni file, si chiama "root". L'utente con cui normalmente si accede al sistema è, invece, generalmente, meno privilegiato e può modificare solo alcuni file. Per le operazioni di configurazione del sistema o l'installazione dei programmi è necessario connettersi con l'utente root.
Veniamo ora ad un altro concetto: i "gruppi". Ogni utente può appartenere a uno o più gruppi. Un gruppo non è altro che un modo per assegnare ad un insieme di utenti i permessi per certi file relativi ad un unico ambito. Esempio: il gruppo "lp" permette di utilizzare tutte le funzionalità relative alla porta parallela: tutti gli utenti che appartengono al gruppo lp possono usare la porta parallela. Mi scusino gli esperti per questa descrizione ultra-semplificata ma è necessaria per capire quanto segue.
Le distribuzioni Ubuntu hanno, per impostazione predefinita, l'utente "root" disabilitato, nel senso che non ha una password impostata per cui non è possibile accedere direttamente al sistema come "root" ma solo con il proprio utente definito in fase di installazione. Come è possibile allora effettuare le operazioni di configurazione ed installazione? Risposta: con il comando sudo (Super User DO). In pratica un utente "normale" può scrivere sul terminale "sudo" seguito da un qualsiasi comando ed esso verrà eseguito come se fosse l'utente root. Sudo prevede generalmente, come misura di sicurezza, il reinserimento della password dell'utente. Anche se non utilizzate il terminale dei comandi in Ubuntu vi sarete certamente imbattuti nella versione "grafica" dello stesso comando che vi richiede la password ogni volta che tentate di eseguire una operazione "riservata". Chi può usare il comando sudo? Certo non chiunque, altrimenti non ci sarebbe la possibilità di impostare dei livelli di sicurezza. Gli utenti che abilitati a sudo sono quelli definiti nel file /etc/sudoers (che ovviamente può essere modificato solo da un utente che possa già, a sua volta, effettuare sudo). In Ubuntu sudo è configurato in modo da dare la possibilità di utilizzarlo a tutti gli utenti del gruppo "admin" e generalmente, in una installazione standard, viene creato un solo utente con il proprio nome e che appartiene anche al gruppo admin (se cè solo un utente non può essere che lui l'amministratore!).
Cosa succederebbe se inavvertitamente (o meglio stupidamente) un utente si auto-eliminasse dal gruppo admin? Ebbene, è proprio quello che ho fatto. Ovviamente è sempre possibile togliersi dal gruppo ma solo un utente amministratore può aggiungere qualcuno allo stesso. Siccome l'unico utente ero io non c'era più (quasi) niente da fare: è stato un po' come chiudersi fuori casa lasciando le chiavi dentro!
La soluzione? La chiavetta USB che ho usato per il recupero dati (vedi post precedente). Avviando Ubuntu "live" dalla chiavetta, il disco rigido è leggibile e scrivibile, quindi è possibile ripristinare i gruppi modificando il file /etc/group (è il file dove vengono salvate tutte le impostazioni dei gruppi). Procedura pratica:
Aprire un terminale
Digitare
sudo mkdir -p /mnt/disco
(crea una directory "disco" dove monteremo l'hard disk; notare che "sudo" funziona perché ora stiamo lavorando nel sistema caricato dalla chiavetta e non su quello installato)
sudo mount /dev/sda1 /mnt/disco
(monta la partizione del disco nella directory appena creata. Attenzione:  sda1 è la prima partizione del primo disco scsi (o SATA), per un disco IDE la prima partizione del primo disco sarà hda1, se il disco è sul secondo canale IDE sarà hdb1, se la partizione non è la prima sarà hda2, hda3, ecc...)
sudo cp /mnt/disco/etc/group- /mnt/disco/etc/group
Ho visto che il vecchio file dei gruppi (contenente la versione in cui il mio utente apparteneva al gruppo admin) è stato salvato in un file con un "-" alla fine. Quindi al posto di modificare il file /etc/group l'ho semplicemente sovrascritto con la versione vecchia.
Riavviare e togliere la chiavetta in modo che parta il sistema dal disco rigido: se tutto è andato bene il problema dovrebbe essere risolto.
Una riflessione finale. Notate come sia semplice leggere dati da un computer anche con un sistema sicuro come linux e protetto da password. Se è impostato il boot da usb (oppure se il BIOS non è protetto da password, quindi chiunque può modificarlo) è sufficiente inserire una chiavetta con Ubuntu, avviare il PC e montare il disco: tutti i dati sono leggibili!
Mettere una password al BIOS potrebbe già essere una sicurezza in più ma è sempre possibile che qualcuno stacchi fisicamente l'hard-disk collegandolo ad un altro PC e montandolo come descritto. Probabilmente la soluzione più sicura sarebbe quella di utilizzare filesystem criptati ma il loro uso al momento è decisamente poco frequente in ambito casalingo.