Gestire le identità nelle istanze cloud distribuite

Ho molte istanze in diversi cloud, anche approfittando di alcune offerte gratuite per sviluppatori: Amazon Web Services (AWS), Digital Ocean, HP Cloud, ma anche cloud regionali come Moresi.Com, Enter o le mie istanze virtuali sui miei sistemi in housing.

Insomma, un bel po’ di sistemi Linux distribuiti nel mondo, forse come molti informatici.  E su questo si incastra il problema di avere la mia identità e quella dei miei utenti/sviluppatori distribuita in questi sistemi. Mentre in una intranet avrei usato LDAP senza esitazioni, creare un LDAP esposto ad Internet potrebbe non essere una buona idea.

Allora come fare a risolvere questo problema e contemporaneamente avere un ottimo livello di sicurezza? La risposta potrebbe essere quella di usare il nuovo modulo NSS per SecurePass.

Fino ad adesso SecurePass è stato sempre usato come un “two factor authentication” nel cloud, soltanto sfruttando la parte di autenticazione nel sistema operativo. Ma la nuova versione beta è in grado di ospitare gli “extended attributes”, che sono informazioni arbitrarie che un amministratore o una applicazione puo’ usare per ogni utente di SecurePass.

Useremo SecurePass per autenticare l’utente e tenere le informazioni Unix atttraverso questa nuova funzionalità. In particolare, useremo:

  • il sottosistema PAM per autenticare gli utenti via RADIUS
  • il nuvo modulo NSS di SecurePass per ottenere informazioni di UID/GID/….

SecurePass e gli extended attributes

La prossima generazione del servizio SecurePass (attualmente in beta) è in grado di ospitare informazioni arbitrarie per ogni profilo utenti. Questa funzionalità è chiamata “Extended Attributes” (o xattrs) e -come potete immaginare- sono organizzate in modalità chiave/valore.

Dovete avere i SecurePass tools per modificare gli extended attributes di un utente. Le nuove release di Debian Jessie and Ubuntu Vivid Vervet, avranno un pacchetto per questo, quindi potrete fare:

# apt-get install securepass-tools

Per altre distribuzioni Linux (o Unix), potete usare il python package installer (PIP) per installare i tools. Installate come pre-requisito pycurl e poi:

# pip install securepass-tools

Anche se i SecurePass tools hanno la possibilità di avere un file di configurazione locale, per questo tutorial raccomandiamo di creare un file /etc/securepass.conf, in modo da essere usato anche dal modulo NSS. Il file di configurazione e’ simile a quanto sotto:

[default]
app_id = xxxxx
app_secret = xxxx

Dove app_id e app_secrets sono API keys valide per accedere a SecurePass beta.

Attraverso la riga di comando, saremo in grado di impostare UID, GID e tutti gli attributi Unix per ogni utente:

# sp-user-xattrs user@domain.net set posixuid 1000

Mentre  posixuid e’ l’attributo minimo per avere un login su Unix con il modulo NSS, i seguenti attributi sono validi:

  • posixuid → UID dell’utente
  • posixgid → GID dell’utente
  • posixhomedir → Home directory
  • posixshell → Shell preferita
  • posixgecos → Gecos (il default è lo username)

Installazione e configurazione del modulo NSS SecurePass

Similmente a quanto avviene per i tools, Debian Jessie e Ubuntu Vivid Vervet hanno un pacchetto nativo per SecurePass

# apt-get install libnss-securepass

Per le precedenti releases di Debian e Ubuntu, ma anche per CentOS e RHEL, è sempre possibile installare il modulo. I sorgenti sono disponibili su:

https://github.com/garlsecurity/nss_securepass

Poi:

./configure
make
make install (solo Debian/Ubuntu)

Per CentOS/RHEL/Fedora bisogna installare il modulo NSS nel posto giusto:

/usr/bin/install -c -o root -g root libnss_sp.so.2 /usr/lib64/libnss_sp.so.2
ln -sf libnss_sp.so.2 /usr/lib64/libnss_sp.so.2

Il file di configurazione /etc/securepass.conf va esteso per avere le informazioni di default per il modulo NSS. Bisogna creare una sezione [nss] come da basso:

[nss]
realm = mydomain.com
default_gid = 100
default_home = "/home"
default_shell = "/bin/bash"

Il realm va impostato come quello registrato su SecurePass, il modulo NSS farà append del dominio/realm corrispondente all’utente Unix. Io preferisco impostare il GID corrispondente al gruppo “users”, che di solito su Linux è il gruppo 100. Fate in modo che questo gruppo esista a livello di sistema operativo. Se non si impostano i default su home e shell, i default dei default sono “/home” e “/bin/false”

Dobbiamo ora configurare il Name Service Switch (NSS) per usare SecurePass. Cambiamo il file  /etc/nsswitch.conf aggiungendo “sp” alla riga passwd come segue:

$ grep sp /etc/nsswitch.conf
passwd:     files sp

Controllate che il sottosistema NSS stia funzionando con il modulo SecurePass facendo una query alla tabella passwd come segue:

$ getent passwd user
user:x:1000:100:My User:/home/user:/bin/bash
$ id user
uid=1000(user)  gid=100(users) groups=100(users)

A questo punto abbiamo configurato gli utenti a sistema operativo, ma gli stessi non potranno collegarsi perche’ manca una password corrispondente. Useremo SecurePass per autenticare gli utenti.

Configurare PAM per SecurePass

Se stai usando CentOS o RHEL, bisogna avere EPEL configurato. Per attivare EPEL, seguite le istruzioni su http://fedoraproject.org/wiki/EPEL

La configurazione seguente non è stata provata con SE-Linux abilitato (controllate che sia disabilitato o in modalita’ permissive).

Su CentOS/RHEL, installate il modulo PAM RADIUS con:

# yum -y install pam_radius

Su Debian/Ubuntu, installate il modulo PAM RADIUS con:

# apt-get install libpam-radius-auth

Nota: al momento della scrittura del presente articolo, EPEL 7 è ancora in beta e non contiene il modulo PAM RADIUS. E’ stata fatta una richiesta attraverso il Bugzilla di RedHat per includere questo pacchetto in EPEL 7

Accediamo all’interfaccia di amministrazione SecurePass e aggiungiamo un nuovo device RADIUS. Dobbiamo solo settare l’IP Pubblico del server, un fully qualified domanin name (FQDN) e la secret pass per l’autenticazione Radius. Se siete sotto NAT, questo corrisponde all’IP pubblico di uscita dei pacchetti. Dopo l’aggiunta avremo un piccolo riassunto con i dati del device appena aggiunto. Per questo esempio, useremo “secret”.

Configurate il modulo PAM RADIUS attraverso il file /etc/pam_radius.conf e aggiungete le seguenti righe:

radius1.secure-pass.net secret 3
radius2.secure-pass.net secret 3

Ovviamente “secret” è la stessa che abbiamo impostato attraverso l’interfaccia di amministrazione di SecurePass administration interface. A questo punto bisogna modificare il file di configurazione di PAM.

In CentOS, modificate il file /etc/pam.d/password-auth-ac; in Debian/Ubuntu modificate il file /etc/pam.d/common-auth ed assicuratevi che il modulo pam_radius_auth.so sia nella lista.

auth required pam_env.so
auth sufficient    pam_radius_auth.so try_first_pass
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so

Conclusioni

E’ difficile avere a che fare con tante istanze Linux distribuite; ci sono problemi che spaziano dal mantenere il software sempre aggiornato, al logging centralizato fino alla gestione delle utenze. Nel cloud, infatti, non è sempre possibile usare i software che tradizionalmente venivano usati nelle intranet. Alcuni tools, come SecurePass, possono aiutare nella gestione quotidiana.

Per poter accedere alla Beta di SecurePass, bisogna attivare SecurePass su: http://www.secure-pass.net/open

E successivamente mandare una mail a support@secure-pass.net richiedendo l’accesso alla beta.

Facebook Twitter Linkedin Plusone Pinterest Email

Farewell Ubuntu-it!

Era il gennaio 2007 quando, per la prima volta, lasciai un messaggio sul forum della Comunità Italiana di Ubuntu. Da lì l’evoluzione è stata rapida: cominciai a contribuire alla stesura delle guide della documentazione della comunità (il “wiki“), prima come autore, poi come editor e infine come amministratore. Parallelamente iniziai anche a partecipare ai lavori del Gruppo traduzione e infine approdai allo sviluppo vero e proprio, curando inizialmente i merge e sync dei pacchetti da Debian, per poi estendere successivamente il mio raggio d’azione anche alla risoluzione dei bug.

Sette anni fa dunque ebbi il mio primo contatto con la Comunità e i riscontri furono molto positivi, trovai un folto gruppo persone disposte a impiegare molto tempo delle proprie giornate a spargere il verbo di una distribuzione GNU/Linux libera, fondata sui valori universali di solidarietà e condivisione della conoscenza, in modo del tutto volontario. Tra me e il Codice di Condotta di Ubuntu è stato amore a prima vista e, come gli altri, fui felicissimo di abbracciare il progetto Ubuntu e impegnarmi per la sua crescita.

Ci sono stati tempi duri, l’evoluzione del rapporto fra la base comunitaria e l’azienda sponsor principale di Ubuntu ha indebolito molte delle promesse fatte alle origini, nonchè incrinato le certezze e ispirato dubbi a un buon numero di noi. Mentre qualcuno, profondamento deluso dalla scelta di Canonical di declassare i principi etici sui quali la Comunità di Ubuntu ha costruito il vero successo di quest’ultimo, se ne andava altri iniziavano a ridurre i propri contributi e a credere meno nel progetto, altri ancora hanno semplicemente trovato cose migliori da fare. Ecco, io faccio parte di quest’ultimo gruppo. Benchè sia l’unico amministratore ancora attivo della mailing list di supporto, sono passati anni ormai dall’ultima volta in cui ho revisionato una guida sul wiki o dato un consiglio a qualche nuovo utente in difficoltà sul forum o nel canale IRC, ciò mi fa sentire una specie di burocrate del nulla ed è assolutamente in contrasto con la mia idea di cosa una comunità di supporto deve fare: aiutare gli utenti.

Oggi dunque prendo finalmente coscienza e lascio la Comunità Italiana per evidente mancanza di interesse e tempo da dedicarvi.

In questi sei anni molte cose sono cambiate nella mia vita e una fetta della felicità raggiunta la devo a ciò che ho imparato da quelle persone che ho avuto modo di conoscere e frequentare proprio grazie a Ubuntu-it. Milo, Paolo, Leo, Fabio “thesaltydog”, Flavia, Luca (entrambi, “elle” e DktrKranz), Maurizio (Bugman! Dove sei finito?), Sergio, Volans: a loro va il mio pensiero e la memoria corre verso tutti quei momenti nei quali abbiamo condiviso un pezzetto di infinito.

Farewell everyone, it’s been great riding with you.

Facebook Twitter Linkedin Plusone Pinterest Email

La nemesi si avvicina

Questo che segue è ciò che ho scritto sul questionario-burla di Almalaurea, alla sezione “Presentazione personale”:

Non sono assolutamente interessato a lavorare in Italia. Amo il mio paese e sono addolorato nel vederlo precipitare in un vortice mortale di depressione economica, ma é esattamente ciò che ci meritiamo. Buona parte dei meriti vanno al nostro sistema Universitario, che non forma assolutamente gli studenti e non li prepara ad affrontare il lavoro. Piuttosto l’Università continua a confermarsi il posto di lavoro ideale per professori raccomandati (solitamente accademici teorici inutili al mondo e alla propria vita) che trovano nell’umiliazione degli studenti l’unica vera gioia della propria esistenza, puntualmente dimenticando che quest’ultimi pagano loro lo stipendio. È difficile ricordare il momento in cui la Ricerca in Italia è morta, poichè ciò è avvenuto ormai troppo tempo fa, e una Università senza Ricerca è utile come una forchetta nella minestra. Fortunatamente molti dei nostri studenti con ambizioni di ricerca, gli stessi che per anni hanno dovuto sopportare innumerevoli soprusi da parte di un sistema di potere profondamente corrotto che punta solo al mantenimento di se stesso, trovano all’estero quelle occasioni che l’Italia, dopo averli allevati, allattati e cresciuti, nega loro. Ecco rivelata la nostra patria: benevola madre per pochi, lurida troia per molti altri.

Sono uno stimato professionista nel mio settore, ho ottenuto negli anni diversi riconoscimenti da parte di aziende e organizzazioni internazionali per la qualità del mio lavoro e tornando con la memoria agli anni di corso universitario, fatta eccezione per pochissimi casi particolari, non trovo neanche una sola persona meritevole della mia gratitudine. La stragrande maggioranza dei miei insegnanti si è sempre dimostrata verso di me e gli altri studenti orgogliosamente ignorante, altezzosa e priva di qualsiasi desiderio di accrescere l’esperienza propria e altrui. Bravissimi giudici nel sentenziare promozioni o bocciature sulla base di ridicoli esercizi di manierismo pseudo-tecnologico ma totalmente incompetenti nel rispondere a qualsiasi esigenza di natura pratica, sono loro uno dei cancri principali dell’intero sistema educativo nazionale: vanno assolutamente eliminati, e al più presto.

Facebook Twitter Linkedin Plusone Pinterest Email

Ubuntu, il M5S e le occasioni mancate (di evitare brutte figure)

Non é facile per me scrivere questo articolo, ho poco tempo e un micro cosmo di cose da gestire, ma non posso lasciar correre. Ennò, non stavolta.

Premesso che cercherò di essere breve, ficcante e di non esagerare con le parolacce, quella che segue é la mia risposta ai bizzarri paragoni utilizzati dall’autore del sopra linkato articolo per giungere a conclusioni corrette ma talmente ovvie da coprire l’intero pezzo di ridicolo.

Proporrei di saltare a piè pari le analogie fra leader politici e capitani di ventura di industria così culturalmente, economicamente e geograficamente lontani (ehy Santiago, quante notti insonni sono state necessarie per partorire accostamenti deliranti come MacOS-PDL, Windows-PD?) e andare al punto:

Ubuntu non è una democrazia

Non lo è mai stato, non lo sarà mai e nessuno, Shuttleworth incluso, ha mai sbandierato una governance democratica dove tutti potessero contare qualcosa. Da quel “tutti” i meri utenti sono sempre stati esclusi. Perfino in Debian, dove l’utente rappresenta la priorità massima, regna il principio di do-ocracy, e qui lo trovate scritto nero su sfondo bianco sperando che adesso tu, Santiago, non cominci a rompere il cazzo anche a proposito della governance di Debian solo perché é di fatto diversa da come hai sempre creduto che fosse.

Debian e Ubuntu si collocano su due universi tangenti e nei processi decisionali di entrambi, fatte salve rare eccezioni, le opinioni degli utenti contano poco. Fatevene una ragione.

Ubuntu non combatte alcuna Kasta del Kazzo

Rendere GNU/Linux usabile per utenti desktop e rubare spazio a Microsoft nel mercato desktop consumer non é la stessa cosa di sconfiggere la fame nel mondo, ma solo business. Vincere facendo buon marketing non riporta in vita Madre Teresa né rappresenta la soluzione al riscaldamento globale. Canonical non ha mai proposto rivoluzioni nè portato avanti battaglie per sani e giusti principi, ha sempre solo legittimamente cercato di farsi spazio nel mondo e se qualcuno, in passato, ha pensato di poter associare Canonical al Bene e credeva che Microsoft, Apple, Sun, Oracle, IBM e compagnia bella fossero evidenti manifestazioni del Maligno ora non deve rimanere deluso. Piuttosto cercasse un buon medico.

“Ubuntu e il M5S sono due prodotti aziendali”, “Apertura non è sinonimo di Comunità”, (e se nonno avesse avuto tre palle sarebbe stato un divertentissimo flipper)

Con questo diventa chiaro che in quanto a perspicacia sei a posto, ti tocca solo lavorare sulla prontezza di riflessi e poi sei a cavallo.

What about me?

Anni fa sostenevo che la Community aveva un peso, ora purtroppo conta come il due di quadri quando comanda denari, perciò non sono io ad aver cambiato opinione (benchè me ne riservi il diritto di farlo ogni tanto) ma le storia ad aver preso una piega totalmente diversa da quella che ci si aspettava.

Concludo con una non-conclusione: evito di rispondere con l’unico tono appropriato che conosco alla frase “considerando chi è che ha scritto tale critica ulteriori argomentazioni sarebbero sprecate”. Sempre considerando chi scrive, sarebbe come sparare sulla Croce Rossa.

Facebook Twitter Linkedin Plusone Pinterest Email

Un, due, tre: puff! La community non c’è più

Non ho molto tempo e, a dir il vero, anche le motivazioni cominciano a mancare, ciononostante ho grande voglia di esprimere ciò che ho in testa e ho deciso di farlo con una breve, brevissima serie di commenti.

Ma vi avviso: trattandosi di fulminei giudizi lapidari, nati da pensierosi attimi di puro rancore misto a un sentimento di profonda e amarissima delusione, non vi aspettate alcun diritto di replica nè razionali e logici approfondimenti sul tema.

  1. Raring sarà la prima release ad essere stata sviluppata col paracadute. Questo perchè Canonical si fida poco di noi, cioè di chi non è pagato da Canonical e il messaggio appare chiaro: la community non è affidabile. Colpiti.
  2. Non si terrà più alcun Ubuntu Developer Summit. Poco male, in realtà gli ultimi due ai quali ho partecipato fisicamente (UDS-P Orlando, UDS-Q Oakland) erano già sembrati alquanto superflui: più che meeting di una comunità riunita per decidere, sembrava di stare a una première. Altro messaggio, non meno importante del precedente: la community pensasse a scrivere le app, al resto ci pensa Canonical. Affondati.

Naturale conclusione è la seguente: la community di Ubuntu, per come l’abbiamo conosciuta e apprezzata per tanti anni, è morta e sepolta. È ora di farsene una ragione.

Facebook Twitter Linkedin Plusone Pinterest Email

Python e le classi astratte

Avevo bisogno di una classe virtuale pura che fornisse ai sottotipi un’implementazione standard di alcuni metodi ma che, al contempo, li obbligasse a fornire delle nuove implementazioni degli stessi. Con questa soluzione sono riuscito a raggiungere il risultato voluto, inoltre i metodi sovraccarichi richiamano la versione fornita dalla classe base virtuale.


class Virtual:

    __metaclass__ = ABCMeta

    @abstractmethod
    def _update(self, *args, **kwargs):

        print "metodo virtuale"

    def _method_template(self, _method, *args, **kwargs):

        getattr(self, _method)(*args, **kwargs)
        getattr(Virtual, _method)(self, *args, **kwargs)

    def __getattr__(self, name):

        _method = "_%s" % name
        if _method in Virtual.__abstractmethods__:
            impl_method = lambda *y, **z: Virtual._method_template (self, _method, *y, **z)
            setattr(self, name, impl_method)
            return impl_method
        else:
            raise AttributeError("'%(class)s' object has no attribute '%(attr)s'" % {'class' : self.__class__.__name__,
                                                                                     'attr' : name})


class Class(Virtual):
    def _update(self):
        print "metodo \"reale\""

if __name__ == "__main__":
    c = Class()
    print c
    c.update()

Facebook Twitter Linkedin Plusone Pinterest Email

A proposito di GPGKeyOnUsbDrive

Già da tempo utilizzavo il metodo descritto nella guida GPGKeyOnUsbDrive (qui la guida originale in lingua inglese) e pubblico qui di seguito le versioni migliorate (o, meglio, adattate alle mie esigenze) dei due script mount.sh e umount.sh proposti.

Il primo crea automaticamente i link alle proprie cartelle .gnupg e .ssh, dopo averne creato delle copie di backup, e l’altro ripristina lo stato originale. A voi il codice!

mount.sh

#!/bin/bash

dir=`dirname $0`
loopdev=$(sudo losetup -f)
sudo -p "Password (sudo): " modprobe cryptoloop && \
sudo modprobe dm-crypt && \
sudo modprobe aes_generic && \
sudo mkdir -p /media/encrypted && \
sudo losetup $loopdev $dir/disk.img && \
sudo cryptsetup -c aes -s 256 -h sha256 create usbkey $loopdev && \
sudo mount -t ext3 /dev/mapper/usbkey /media/encrypted && \
sudo chown -R $UID.$UID /media/encrypted/

ask_yesno () {
  REPLY=
  while [ "$REPLY" != "y" ] && [ "$REPLY" != "n" ] ; do
    echo -n "$1 "
    read -N 1
    echo
  done
  if [ "$REPLY" = "y" ]; then
    return 0
  fi
  return 1
}

backup_olddir () {
  directory="$1"
  mv "$HOME"/."$directory" "$HOME"/."$directory".BACKUP
}

create_link () {
  directory="$1"
  ln -s /media/encrypted/."$directory" "$HOME"/."$directory"
}

link_directory () {
  directory="$1"
  if [ -d "$HOME"/."$directory" ]; then
    echo "Moving ~/.$directory to ~/.$directory.BACKUP... "
    if [ -d "$HOME"/."$directory.BACKUP" ]; then
      if ask_yesno "The directory $HOME/.$directory.BACKUP already exists, overwrite? [y/n]"
      then
        rm -rf "$HOME"/."$directory".BACKUP
        backup_olddir "$directory"
        create_link "$directory"
      else
        return 1
      fi
    else
      backup_olddir "$directory"
      create_link "$directory"
    fi
  else
    create_link "$directory"
  fi
}

for dir in gnupg ssh
do
  ask_yesno "Do you want to link your private $dir keys? [y/n]" && link_directory $dir
done

umount.sh

#!/bin/bash

loopdev=$(sudo cryptsetup status usbkey | grep device | sed -e "s/ *device:[ \t]*//")

sync
sudo umount /media/encrypted
sudo cryptsetup remove usbkey
sudo losetup -d $loopdev

restore_olddir () {
  directory="$1"
  mv "$HOME"/."$directory".BACKUP "$HOME"/."$directory"
}

for directory in gnupg ssh
do
  if [ -L "$HOME"/."$directory" ] && \
     [ "`readlink ${HOME}/.${directory}`" = "/media/encrypted/.${directory}" ]
  then
    echo "Restoring ~/.${directory}"
    rm "$HOME"/."$directory"
    restore_olddir "$directory"
  fi
done

 

AGGIORNAMENTO (30/01/2012): Corretto un errore nello script mount.sh.

Facebook Twitter Linkedin Plusone Pinterest Email

Toshiba Folio100, ecco Android Honeycomb

Android 3.0 Honeycomb, ovvero ciò che Toshiba non vi darà mai per il vostro Folio100:

La mod in questione è basata su VegaComb ed è frutto del lavoro di DexterPicard, ormai migrato da XDA a Tabletroms. Prima di illustrare la procedura di installazione, tenete bene a mente ciò che segue:

  • tutte le applicazioni e le configurazioni utente andranno perdute;
  • la fotocamera non funziona e non funzionerà almeno finché qualcuno non sarà riuscito a tirar fuori un port del modulo del kernel;
  • alcune applicazioni scaricate dal market potrebbero non funzionare;
  • il risultato non è garantito, perciò siate consapevoli che già conoscete l’autore di qualsiasi danno che potrebbe riportare il tablet: Voi stessi.
OK, partiamo da una breve lista di ciò che vi serve:
  • Il cavo USB-to-mini-USB fornito nella confezione originale
  • Ubuntu o Debian, nel mio precedente articolo trovate le informazioni su come configurare il sistema per l’utilizzo di ADB e simili (è inutile che mi chiediate di aiutarvi a configurare Windows, non rispondo a tali email);
  • fastboot;
  • ClockworkMod Recovery per Folio100;
  • Folio3x di DexterPicard;
  • Una memoria SD, con una quantità di spazio disponibile sufficiente a contenere il file update.zip della Folio3x;
  • Un po’ di sale in zucca.
Siamo pronti, possiamo cominciare!
  1. Primo step: spegnere il tablet e riaccenderlo. Alla comparsa della schermata di boot (quella con il logo di Toshiba, per intenderci), premere 3 volte il tasto di accensione e 1 volta il tasto VOL+. Fate attenzione a non premere più di tre volte il tasto di accensione, otterreste la morte del tablet, con consequente visita al negozio dove lo avete acquistato.
  2. Secondo step: siete entrati nella fastboot mode: bravi! Ora aprite un terminale nella cartella di download dei file, scompattate fastboot e il file recovery.img contenuto nell’update.zip della ClockworkMod Recovery. Infine, collegate il tablet al computer via USB e testate il collegamento con il comando:
    ./fastboot devices

    Se nella lista dei dispositivi compare il Folio100 come dispositivo sconosciuto, siete a cavallo e potete digitare:

    ./fastboot erase userdata
    ./fastboot erase system
    ./fastboot erase cache
    ./fastboot erase linux
    ./fastboot erase recovery
    ./fastboot flash recovery recovery.img
    ./fastboot reboot

    Avete appena piallato (quasi) tutte le partizioni nella memoria interna e installato ClockworkMod come nuovo sistema di ripristino. Il tablet si riavvierà, alla comparsa del logo Toshiba premete contemporaneamente il tasto di accensione e VOL+, quindi in sequenza VOL+, VOL-, VOL+. Vi troverete nel menù di ripristino, ora non rimane che preparare la scheda di memoria.

  3. Terzo step: scompattate il file update.zip contenuto nell’archivio della Folio3x e salvatelo nella directory principale della memoria SD esterna e inseritela nel tablet. Dal menù di ripristino, selezionate «Apply sdcard:update.zip».
Il tablet si riavvierà, non resta che incrociare le dita e attendere pazientemente. Fatemi sapere cosa ne pensate!

Link:

Facebook Twitter Linkedin Plusone Pinterest Email

Refero, refers

Benché io mi trovi spesso in prima linea nel criticare la mentalità e i costumi delle persone con le quali convivo all’interno degli stessi confini, nonostante io non mi lasci mai sfuggire l’occasione di far notare ai miei interlocutori la voglia matta di muovermi verso altri posti, io amo il mio paese.

So bene che può suonare strano alle orecchie di mi conosce e frequenta, eppure da sempre sono convinto che gli Italiani, con tutti i loro vizi e difetti, siano decisamente migliori di coloro che li governano (cit). Basta assistere allo spettacolo quotidiano del nostro popolo in movimento per capire che se qui c’è qualcosa che funziona, questa é l’Italia. Quella vera, trascinata dalle persone e dalle loro idee. Quella fatta di lavoro e studio, ricerca e sacrifici. Testa, braccia e cuore. Quella che, nonostante tutto, lavora meglio delle sue istituzioni.

Domani (e lunedì) questa nazione ha un’occasione imperdibile per riappropriarsi definitivamente della libertà di scelta che, fino all’ultimo, é stata messa in pericolo dagli spregiudicati tentativi dei governanti di convincere i governati della sua non-necessità.

L’invito a non andare a votare da parte di chi riveste una carica pubblica comporta pesanti ricadute sull’interpretazione del messaggio, che non può e non deve assumere contorni politici. Un chiaro esempio può essere d’aiuto: se un Ministro della Repubblica vi consiglia di andare al mare e un blogger qualsiasi vi invitare a fare di il contrario, ciò non significa che il primo sia verde-nero-di destra e il secondo giallo-rosso-di sinistra (la scelta dei colori e i riferimenti ideologici hanno la stessa importanza dei segnaposti del Monopoli). Molto semplicemente, quest’ultimo conosce e rispetta i valori costituzionali, mentre l’altro, con buone probabilità, é solo un povero malato.

Perciò, visto che richiamare i propri connazionali ai doveri nei confronti del proprio paese non é nè un messaggio elettorale nè uno spot politico, mi prendo questa libertà: andate a votare!


Facebook Twitter Linkedin Plusone Pinterest Email