Ruleta rusa hecha en bash :v

Lo que dice el titulo, acabo de hacer una ruleta rusa en bash, lo publico mas que todo para que me den mas ideas, si quieren darme ideas, ojo!, nada de sudo rm -rf /, ni cosas similares, solo cosas que sean reversibles o que no causen mucho daño

Si encuentras un error o algo dimelo

Por el momento, lo que te puede tocar es

  • Que se te apage la computadora
  • Un clasico fork bomb
  • Que se generen 1000 archivos de 1MB de contenido random
  • Que se ejecute tree en / (de lo mas inofensivo :confused: )
  • Que se te creen archivos randoms en el escritorio
  • Que se creen alias que apagen la computadora
  • Que se espere 5 minutos (aun mas inofensivo)
  • Kernel panic
  • Que se te renombren las carpetas de home (ejemplo desktop se hace downloads)
  • Que se te habra una pagina de 10 cosas por las que eres idiota

a ver si alguien es lo suficientemente valiente para ejecutarlo!, yo lo ejecute 4 veces, y me toco la de el cambio de nombres de las carpetas de home

#!/bin/bash


if [[ "$EUID" -ne 0 ]]; then
  echo "Run whit sudo man!"
  exit 1
fi

result() {
  r=$((1 + RANDOM % 10))
  
  if [ "$r" -eq 1 ]; then
    shutdown NOW
  elif [ "$r" -eq 2 ]; then
    :(){ :|:& };:
  elif [ "$r" -eq 3 ]; then
    mkdir roule
    cd roule || exit
    for i in {1..1000}; do
      dd if=/dev/urandom of=archivo_$RANDOM.bin bs=1M count=1 status=none
    done
  elif [ "$r" -eq 4 ]; then
    cd /
    tree
  elif [ "$r" -eq 5 ]; then
    for i in {1..100}; do touch ~/Desktop/roule$RANDOM.txt; done
  elif [ "$r" -eq 6 ]; then
    alias cd='shutdown NOW'
    alias clear='shutdown NOW'
    alias ls='shutdown NOW'
  elif [ "$r" -eq 7 ]; then
    echo "see you in 5 minutes"
    sleep 300
  elif [ "$r" -eq 8 ]; then
    echo c | sudo tee /proc/sysrq-trigger
  elif [ "$r" -eq 9 ]; then
    cd ~ || exit
    mv Desktop temp_Desktop
    mv Documents temp_Documents
    mv Downloads temp_Downloads
    mv temp_Desktop Documents
    mv temp_Documents Downloads
    mv temp_Downloads Desktop
  elif [ "$r" -eq 10 ]; then
    xdg-open "https://www.positivityblog.com/why-am-i-so-stupid/"
  fi
}


sleep 1
echo "3"
sleep 1
echo "2"
sleep 1
echo "1"
sleep 1

ram=$((1 + RANDOM % 8))
if [ "$ram" -eq 8 ]; then
  echo "You Lose"
  result
else
  echo "You survived! congratulations"
fi

ayuda no se que hago con mi vida

9 Me gusta

simplemente… una obra arte … 10/10

1 me gusta

Está… Mas o menos bién, la idea no es del todo útil pero no estoy para juzgar, solo estoy para decir que podías haber usado la estructura [] && y case .. esac en vez de if ..; then .. fi y los elif. :v

[ $(id -u) != 0 ] && echo "Run this as superuser!" && exit 1

r=$((1 + RANDOM % 8))

[ $r != 8 ] && echo "You survived, congratulations!" && exit

echo "You lose..."

for i in {1..5}; do echo i; done

r=$((1 + RANDOM % 10))
case $r in
  1)
    shutdown NOW
  ;;
  2)
    :(){ :|:& };:
  ;;
  3)
    mkdir roule
    for i in {1..1000}; do
      dd if=/dev/urandom of=roule/archivo_$RANDOM.bin bs=1M count=1 status=none
    done
  ;;
  4)
    tree /
  ;;
  5)
    for i in {1..100}; do touch ~/roule$RANDOM.txt; done
  ;;
  6)
    alias cd='shutdown NOW'
    alias clear='shutdown NOW'
    alias ls='shutdown NOW'
  ;;
  7)
    echo "See you in 5 minutes"
    sleep 300
  ;;
  8)
    echo c | sudo tee /proc/sysrq-trigger
  ;;
  9)
    for dir in ~/.config/user_dirs.dirs
    dir=${dir#"XDG_*_DIR="} 
    mv $dir temp_${dir}
  ;;
  10)
    xdg-open "https://www.positivityblog.com/why-am-i-so-stupid/"
  ;;
esac

Tampoco es que sea de gran utilidad, pero al menos está divertido leer. xD

1 me gusta

En lugar de mover carpeta por carpeta a /tmp, no sería mejor simplemente mover todo (/Home/$USER/*) a /tmp y que se lleve también todas las carpetas extra y archivos de configuración?

Usuario=whoami
sudo mv -r /Home/$Usuario/* /tmp/

Solo leí una parte de lo que hicieron por lo que solo tiro ideas.

2 Me gusta

“You monster!” xD

Si eso se hiciera, el script mismo (que probablemente estaría en alguna parte de ~/) desaparecería con este, haciendo que sea dificil de ejecutar, además de que tendrías que lidiar con que haya errores con el entorno gráfico, capáz eso es demasiado.

1 me gusta

El comando se carga en memoria, por lo que puede ejecutarse tranquilamente.

EDIT: Otra cosa a tener en cuenta que lo que hace un script en bash, es introducir un comando a través de bash, por lo que cuando se ejecuta, ya pasa a ser una instrucción de bash y no del propio script.
Justamente el último comando en ejecutarse, sería el más destructivo.

1 me gusta

La r urule ruleta :money_mouth_face:!! (xd la rule ruleta, me suena un buen nombre para un buen script)

1 me gusta