A man appears to have deleted his entire company with one mistaken piece of code.
By accidentally telling his computer to delete everything in his servers, hosting provider Marco Marsala has seemingly removed all trace of his company and the websites that he looks after for his customers.
Mr Marsala wrote on a forum for server experts called Server Fault that he was now stuck after having accidentally run destructive code on his own computers. But far from advising them how to fix it, most experts informed him that he had just accidentally deleted the data of his company and its clients, and in so doing had probably destroyed his entire company with just one line of code.
The problem command was "rm -rf": a basic piece of code that will delete everything it is told to. The "rm" tells the computer to remove; the r deletes everything within a given directory; and the f stands for "force", telling the computer to ignore the usual warnings that come when deleting files.
His backups were also mounted at the time. That's a nightmare scenario, right there.
(Score: 5, Informative) by Anonymous Coward on Friday April 15 2016, @10:12PM
There are too many clues this is a troll. The first is that a person on that level knows enough to write the scripts and run the VPSes for thousands of customers so far without incident, so probably not an intro level person. Second is that he had backups mounted while making system changes. Third is that in response to instructions to make a copy of the disks with dd, his response is that he swapped if and of (which wouldn't actually do any damage in this case). Fourth is that his given script, it wouldn't actually result in deleting everything like he said due to --preserve-root being the default now. Fifth is that he seemed to have trouble with other commands, screwing them up just enough to look like an accident but not enough for outright suspicion.
And finally, he states in a later comment that he recovered everything (without specifying how), so this isn't news anyway.
(Score: 2, Informative) by Blightbow on Friday April 15 2016, @11:08PM
It was in fact a troll.
(Score: 2) by Pino P on Friday April 15 2016, @11:17PM
it wouldn't actually result in deleting everything like he said due to --preserve-root being the default now.
Even on non-GNU implementations of rm, such as those in BusyBox and FreeBSD? One of my Twitter followers thinks --preserve-root is not the answer [twitter.com] as much as set -u [davidpashley.com]. POSIX sh supports a strict mode enabled by set -u, which protects programs other than rm from unintended behavior due to uninitialized variables. It's the shell equivalent of the warning-to-exception snippet in the PHP manual [php.net].
(Score: 0) by Anonymous Coward on Friday April 15 2016, @11:50PM
I think all shell scripts should start with "set -ueo pipefail" for protection from all sorts of errors and sysadmins should consider having that be the default in general.
While true that I assumed he was using Linux and specifically GNU userland on Linux, I think that is a fair assumption given the relative market share in the server space.
(Score: 0) by Anonymous Coward on Friday April 15 2016, @11:57PM
I think all shell scripts should start with "set -ueo pipefail"
I think all shell scripts should start with: sudo make me a sandwich -now -please
(Score: 2) by darkfeline on Saturday April 16 2016, @02:42AM
I think that shell scripts that would need to start with "set -ueo pipefail" should be considered for rewriting in a "real" scripting language, like Perl, Python, or Ruby, or perhaps even a language like Go, which provides static type checking, goroutines, and channels (which are superb for running different commands piped to different other commands asynchronously).
Join the SDF Public Access UNIX System today!
(Score: 1) by Francis on Saturday April 16 2016, @12:45AM
I don't see any reference to that sort of protection on my FreeBSD install, I'm using ZFS, so I could relatively easily unmount and disconnect the non-ZFS volumes and take one last snapshot before executing the command, but I'm too lazy to purposefully nuke my system knowing that rm -rf works the way that it's designed to work.
One of the reasons why I'm on FreeBSD is because it trusts me to know what the fuck I'm doing. The Linux "fix" at best keeps you from deleting the whole system, it doesn't protect you against executing that command from inside of /home where most or all of the files that you're likely to care about are located.
(Score: 3, Informative) by frojack on Saturday April 16 2016, @07:19AM
Yes it was a troll
http://www.repubblica.it/tecnologia/2016/04/15/news/cancella_l_azienda_per_sbaglio_la_disavventura_tecnologica_di_marco_marsala-137693154/ [repubblica.it]
And its amazing just how widely the troll has spread.
No, you are mistaken. I've always had this sig.
(Score: 2) by turgid on Saturday April 16 2016, @09:19AM
And look at the syntax of his rm command. No $ on the {foo} or {bar}.
I refuse to engage in a battle of wits with an unarmed opponent [wikipedia.org].