Category: software

  • Aggiornare Ubuntu da Hardy (8.04) a Intrepid Ibex (8.10) usando la linea di comando

    Ultimamente mi è capitato di dover aggiornare alcuni server da Ubuntu 8.04 (NB: questa versione è una LTS, ovvero Long Time Support che significa pacchetti aggiornati per 3 anni per la versione desktop e fino a 5 per i server) a Ubuntu 8.10 (questa versione non è LTS!).

    Personalmente preferisco prima aggiornare una macchina di test, e, se tutto va bene, migrare tutte anche le altre macchine alla nuova versione. Ma come si può aggiornare Ubuntu usando soltanto l’accesso a linea di comando (tipicamente ssh)?

    È tutto molto semplice:

    1. Installare (se non è già installato) update manager con: sudo apt-get install update-manager-core
    2. Modificate il file /etc/update-manager/release-upgrades cambiando la riga:
    3. Prompt=lts

      con

      Prompt=normal

      (usate vim o il vostro editor preferito)

    4. Salvate il file e lanciate il processo di aggiornamento con sudo do-release-upgrade

    Se tutto va bene, update-manager vi chiederà se volete effettivamente aggiornare e vi darà anche una stima del tempo previsto:

    Calculating the changes

    Do you want to start the upgrade?

    24 packages are going to be removed. 208 new packages are going to be
    installed. 1018 packages are going to be upgraded.

    You have to download a total of 768M. This download will take about 1
    hour 10 minutes with your connection.

    Fetching and installing the upgrade can take several hours. Once the
    download has finished, the process cannot be cancelled.

    Continue [yN]  Details [d]y

  • Creare una lista dei programmi installati su Windows XP/Vista

    Come si può creare velocemente una lista dei programmi che abbiamo installato su un computer con Windows XP/Vista?

    Molto semplice: aprite il prompt dei comandi e digitate:

    • wmic (Invio)
    • /output:installed.txt product get name

    A questo punto il file installed.txt conterrà la lista dei programmi attualmente installati sul vostro computer.

  • Come convertire documenti .docx, .xlsx in .doc, .xls senza installare nulla (da Office 2007 a Office 2003)

    A volte capita che si debba leggere un documento Word in formato .docx ma non si abbia a disposizione Word 2007 per leggerlo; infatti, tutti i programmi della suite Office 2007 (quindi anche Excel, PowerPoint, etc.) utilizzano un nuovo formato per il salvataggio dei documenti:

    • Word usa .docx
    • Excel usa .xlsx
    • … e via dicendo

    Inutile dire che le versioni precedenti di Office (quindi Office 97, XP e 2003) non sono in grado di leggere tali files: come si possono convertire files dal nuovo formato al vecchio formato senza installare nulla sul nostro computer?image

    Grazie a zamzar la conversione è molto semplice e gratuita: basta recarsi sul sito, effettuare l’upload, scegliere il formato di destinazione (.doc, .xls, o .pdf) e scaricare il file convertito.

  • Python: uno script per eliminare i file Thumbs.db e le cartelle .DS_Store

    Windows XP crea automaticamente un file, chiamato Thumbs.db, in tutte le cartelle che visita per salvarne la visualizzazione (dettagli, anteprima, etc.). La stessa cosa fa OSX, creando addirittura (!) una cartella dal nome .DS_Store, contenente gli stessi attributi.

    Stanco di avere il mio hard disk pieno di questi file (in Vista la gestione di questi file è intelligentemente centralizzata), ho creato uno script Python che analizza ricorsivamente una directory (specificata dall’utente) e stampa tutte le posizioni di questi file e directory indesiderati.image

    Lo script richiede esattamente due argomenti: il path da cui si vuole iniziare ad analizzare ricorsivamente la presenza di file e directory indesiderate, e una stringa che conferma l’azione: nel caso in cui l’opzione sia delete, lo script cancella i file desiderati, altrimenti stamperà soltanto le loro posizioni.

    Esempio:
    python recursiveDeleteUnwantedFilesAndDir.py C:\ print

    stampa la posizione dei i files/directory indesiderati

    python recursiveDeleteUnwantedFilesAndDir.py C:\ delete

    stampa la posizione dei i files/directory indesiderati e li elimina dal disco

    Veniamo al codice sorgente:

    import os
    import sys
    
    def recursiveDeleteUnwantedFilesAndDir(path,action):
        for root, dirs, files in os.walk(path):
            for name in files:
                if name == 'Thumbs.db':
                    print os.path.join(str(root),str(name))
                    if action == 'delete':
                        os.remove(os.path.join(str(root),str(name)))
            for name in dirs:
                if name == '.DS_Store':
                    print os.path.join(str(root),str(name))
                    if action == 'delete':
                        os.removedirs(os.path.join(str(root),str(name)))
    
    recursiveDeleteUnwantedFilesAndDir(sys.argv[1],sys.argv[2])
    

    Per scaricare lo script: recursiveDeleteUnwantedFilesAndDir.zip

  • Come creare un tunnel SSH dinamico con PuTTY

    imageAvete bisogno di un tunnel SSH? Ci sono molteplici ragioni per utilizzarlo; se state cercando di realizzare un tunnel sicuramente ne avrete già in mente (almeno) una.

    Passiamo all’opera. Requisito fondamentale: un server Linux con accesso ssh e che permetta ssh tunneling (Ubuntu e quasi tutte le altre distribuzioni con openssh-server di default lo permettono).

    Apriamo PuTTY e cominciamo:

    1. Inserite l’host del vostro server come in figura
    2. Spostatevi nel tab Connection -> SSH -> Tunnels
    3. Nel campo Destination, impostate Dynamic
    4. Scegliete una porta TCP che sapete essere libera sulla vostra macchina locale (un numero >= 1024 potrebbe andare bene) e inserite il numero nel campo Source portimage
    5. Premete Add
    6. Premete ora su Open, connettetevi al vostro server in ssh specificando username e password e lasciate aperta la sessione

    A questo punto il tunnel è creato su localhost, sulla porta TCP che avete specificato come source port: aprite il programma con cui volete sfruttare il tunnel appena creato e specificate di usare un proxy SOCKS5 con indirizzo localhost e come porta la source port che avete scelto.

    A titolo di esempio, usiamo Firefox per sfruttare il tunnel appena creato:

    1. Aprite Firefox
    2. Controllate su www.whatismyip.com quale sia il vostro indirizzo IP e annotatelo
    3. Andate in Strumenti -> Preferenze
    4. Andate su Avanzate e poi nel tab Rete, poi su Connessioni e infine Impostazioni
    5. Cliccate su “Configurazione manuale dei proxy” e inserite nel campo Host SOCKS: l’indirizzo IP del computer locale (127.0.0.1) e come porta la source port che avete scelto in PuTTY (nel mio caso, la 17222)image
    6. Cliccate su OK e chiudete tutte le opzioni che avete aperto
    7. Aprite di nuovo il sito www.whatismyip.com e controllate l’indirizzo IP: se il tunnel sta funzionando correttamente, l’indirizzo IP mostrato è diverso da quello visualizzato al punto 2.
  • Come formattare una partizione con XFS su Ubuntu

    Recentemente ho voluto provare il file-system XFS di SGI su una macchina Linux. Perché proprio XFS?

    Un articolo che può spiegare meglio i principali punti di forza di XFS si intitola “Anatomy of Linux journaling file systems“.

    Citando una parte dell’articolo:

    XFS supports full 64-bit addressing and provides very high performance using B+
    trees both for directories and for file allocation. XFS also uses extent-based
    allocation with variable block size support (from 512 bytes to 64KB). Along with
    extents, XFS uses delayed allocation, in which allocation of disk blocks is delayed
    until the blocks are to be written to disk. This functionality improves the chances that
    sequential disk blocks are allocated, because the total number needed will be
    known.

    Quando poi si illustrano i file-system ancora in sviluppo, in particolare Reiser4 e ext4, sono evidenziate alcune funzionalità che XFS già implementa:

    Reiser4 was designed for better journaling through the use of wandering logs and
    delayed allocation of blocks until the journal is committed (as was done in XFS).

    Like XFS and Reiser4, ext4fs includes delayed
    allocation to allocate blocks on the disk only when needed (which reduces
    fragmentation).

    Bene: per avere una partizione con XFS in Ubuntu dovrete:

    • avere un kernel con il supporto a XFS (il kernel di default ha già il supporto)
    • installare i tool per gestire il filesystem mediante il comando: $ sudo apt-get install xfsprogs

    A questo punto il gioco è fatto: vi basterà partizionare usando il vostro tool preferito (fdisk, gparted, …)

  • Come convertire un’immagine disco da UIF a ISO (Windows & Mac)

    Mi è capitato di dover convertire un’immagine disco dal formato UIF (Magic ISO Universal Image Format File) al formato ISO.uif2iso

    Tipicamente si dovrebbe usare MagicISO per questo compito: non volevo scaricare e installare MagicISO per convertire un solo file per poi disinstallarlo (non avevo motivo di mantenere MagicISO sul mio PC, non ne ho bisogno).

    Quindi sono andato alla ricerca di un convertitore standalone (e possibilmente opensource) e l’ho trovato: uif2iso (ancora meglio: è stato sviluppato da un italiano!). Il software è disponibile in un’unico pacchetto per Windows (esiste il precompilato in formato eseguibile), mentre per Mac è sufficiente compilare il sorgente fornito con il pacchetto: basta entrare in src/ e dare un ‘make’.

    L’utilizzo di uif2iso è molto semplice: il programma vi chiederà di specificare qual è il file UIF che volete convertire (con una finestra in stile Windows “Apri file”) e dove posizionare il file convertito. Dopo pochi minuti avrete finalmente a disposizione il vostro file ISO e potrete dimenticarvi del file UIF.

  • Safari e il blocco popup senza eccezioni: usabilità e flessibilità?

    Lo riconosco: grazie all’uso di WebKit per il rendering delle pagine, Safari (il browser Apple disponibile per OSX e per Windows) renderizza le pagine molto velocemente e con un’ottima aderenza agli standard.

    Peccato che manchi di una funzionalità che hanno tutti i browser (compreso il tanto criticato Internet Explorer di Microsoft): il supporto alle eccezioni per il blocco popup. Si, esistono (e io utilizzo) alcuni siti che caricano il contenuto del sito in un’altra finestra.

    Qualcuno potrebbe obiettare che i popup che bloccati sono frutto di un’errata progettazione web e/o non legittimi…

    … peccato che i popup siano legittimi, e che provengano da Google, in particolare GMail!

    Si, perché se voglio aprire una “conversation” (come le chiama GMail) in un’altra finestra del browser (io ad esempio lo faccio spesso quando riordino la casella), con Safari posso farlo solo se disabilito globalmente il blocco popup.

    Come possono risolvere gli utenti Apple? Installando PithHelmet, un plugin (shareware) che permette di gestire delle eccezioni sul browser Safari.

  • SMS di TIM: dal 6 agosto il profilo Autoricarica verrà cessato

    Stamattina ho ricevuto questo SMS da TIM:

    Dal 6 agosto l’attuale meccanismo di autoricarica cesserà. Aderisci Gratis alla nuova AUTORICARICA chiama 4916. Per Info/recesso senza penali www.tim.it/negozi Tim.

    Il mittente del messaggio è autentico, è una comunicazione ufficiale da TIM, quindi dal 6 agosto tutti quelli che avevano la vecchia Autoricarica 300 dovranno convertirsi a questo nuovo profilo (a meno che non cambino profilo o passino ad un altro operatore).

    Si tratta dell’ennesima rimodulazione del profilo Autoricarica: non bastava quella subita ad aprile 2008, ora anche ad agosto 2008!

    Qui si può leggere il comunicato ufficiale di TIM. È evidente che la tariffa non è più conveniente, e quindi mi sto orientando su altro.

    TIM, che delusione: alla fine ci obbligano ad abbandonare la tanto desiderata Autoricarica…

    Consigli? Al momento la mia idea è quella di orientarmi su un altro piano tariffario di TIM, oppure di passare a Wind.

  • Rootkit: cosa sono, perché si usano e come funzionano

    Per il corso di Sicurezza dei Sistemi Informatici, ho realizzato una presentazione che spiega cosa sono i rootkit (in ambito UNIX e GNU/Linux) e come funzionano.

    La presentazione tratta:

    • Che cos’è un rootkit
    • A cosa serve
    • Come funzionano
    • Tipi di rootkit
    • Come difendersi dai rootkit
    • Cosa fare se si è infetti

    Rootkit: cosa sono, perché si usano e come funzionano

    La presentazione si può scaricare da qui.

    Commenti benvenuti!