- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
CommitStrip | website
Transcript
7 panel comic
1: [2 guys, both in fur lined coats, one wearing a fur-lined hat, the other with crazy hair, sit in circular booth in a rundown bar. 2 empty shot glasses and a bottle are visible on the table.]
Hat: Stop it, you’re crazy! This isn’t you talking, it’s the vodka!
Hair: Leave it…
2: [The two men are sitting across from a third man in a similar fur-line coat and hat, but glasses and a beard. A laptop sits in front of the bearded man.]
Beard: It’s not a game for cowards…
3: [Hair pulls the laptop towards him. Hat looks worried]
Hair: Come on, gimme that and let’s get it over with!
4: [Hair has a crazy and excited look on his face]
Hair: Each one on his own prod server?
Beard: Each one on his own prod server.
5: [Close up of Hats finger clicking the touch pad]
6: [Close up of the sweat dripping down Hats face]
7: [A terminal is open on the laptop screen]
Laptop reads:
root@server:~# [ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo “Lucky boy”;
needs —no-preserve-root
And also a short delay before printing ‘lucky boy’ so you can’t tell if it’s deleting everything or if it’s the built in delay.
That’s brilliant…and sick.
Oh I do remember that sickening feeling when an
rmdoesn’t come back immediately –_—I still remember when I managed to rm -rf / foo (I accidentally typed a space between / and foo) on my very early linux box on the 90s. 80486, 16 mb
I pressed enter. Saw what I did. Remembered that sync ran at every 30s* Pressed the power button.
*= those were simple times, but not better times
So I rm -rf ed my root fs and my box survived it due to the quick power off.
What’s sync? I got into linux quite a bit later. So you mean like an incremental rsync backup? Whatever it was, it sounds like it saved you.
it was an old mechanism in Unix & Linux that flushed “disk writes” to disk. Writes would normally go to the buffer cache in ram and a process called “sync” every 30s to flush out writes to disk. (writing out EVERY change would result in a lot of redundant writes and be very slow, so this was a very simple kind of collecting work until it makes sense to really do it)
We still write async writes to ram first and then write them to disk later, the mechanism is much more advanced nowadays - and also quicker to start writing.
Still, on the shell there’s a command called sync which invokes the system call, asking the kernel to flush out all asynchronous writtes.
(And yes, there’s more than async writes, used by databases for example, but that would require a lot more of explanations)
On modern Linux system yes but old Unix servers (or even recent?) would run it no problem
Edit:
It was initally introduced by sun microsystems in 2005 and was later adopted by GNUSun Microsystem didn’t introduce it in 2005, rather it simply disallowed rm -rf / altogether
Later GNU introduced --preserve-root and after that made --preserve-root the default and added --no-preserve-root https://en.wikipedia.org/wiki/Rm_(Unix)
Except Alpine and other systems with BusyBox
And BSD tooling.
Can someone help and explain this to little old me?
It’s a bash command that generates a random number. If that number divides by six with no remainder then it deletes everything on the server, if not it prints “lucky boy”. “Prod” servers are production servers, the ones the actual business runs on, as opposed to test or dev servers which are often deleted and rebuilt as developers to see if things work or not.
This is Russian roulette for IT people to see if they destroy the running server or not
It’s a bash command
Yeah, weird layered square brackets.
generates a random number. If that number divides by six with no remainder
Meaning a 1 in 6 chance, just like playing traditional Russian roulette with a revolver
EDIT: For fun, here is a Russian roulette bash script that doesn’t actually do anything other than simply print
passorfailwith a 1 in 6 chance:[ $[ $RANDOM % 6 ] == 0 ] && echo fail || echo pass;
They’re basically playing Russian Roulette with their servers. They condition a remove all command on a random numbers generator and pray. If it does not wipe the server, it spits out “Lucky Boy”
Ooooh. Is this a Linux command?
It’s a probably a bash script or some script that generates a random number that if it’s divisible by 6 it executes rm and if it’s not it executes echo
The modulo devisor should reduce by one every time it’s run
-
I’d hope that one’s production server is backed up.
-
alias rm="echo Lucky boy"; clear“Okay, ready to play.”
alias rm=“echo Lucky boy”
That would print “Lucky boy -rf /” though, quite suspicious
deleted by creator
You could make an rm function in .bashrc and ignore the arguments. Idk if there’s a way to ignore arguments with alias.
I’d hope that one’s production server is backed up.
Yeah, all this means is that you’re gonna have to spend time restoring from backup. Right?
-

Risky click of the day
lol I disable this and root access first thing












