â Niveau Dangereux â Ă utiliser avec prĂ©caution
rm -rf /
â NIVEAU APOCALYPSE
La commande la plus infĂąme de Linux. Elle supprime absolument tout ce qui est sur ton systĂšme. Le systĂšme d'exploitation, tes fichiers, tout. En quelques secondes. Sans confirmation. Sans retour arriĂšre.
rm -r -f /
# rm = supprimer
# -r = récursivement (tout le contenu des dossiers)
# -f = forcer (aucune question posée)
# / = la RACINE de tout le systĂšme de fichiers
# rm = supprimer
# -r = récursivement (tout le contenu des dossiers)
# -f = forcer (aucune question posée)
# / = la RACINE de tout le systĂšme de fichiers
Ce qui se passe vraiment
Linux commence Ă supprimer Ă partir de
/ et descend dans TOUS les dossiers. /bin, /etc, /home, /var... tout y passe. En quelques secondes, le terminal ne rĂ©pond plus. Le systĂšme est mort. Seul un format et rĂ©installation peut sauver la machine.â L'alternative sĂ»re
Pour supprimer un dossier spécifique :
rm -rf /chemin/precis/du/dossier. Toujours vérifier deux fois le chemin avant d'appuyer sur Entrée.:(){ :|:& };:
â FORK BOMB
La fork bomb. Une seule ligne de bash qui crée des processus à l'infini, exponentiellement, jusqu'à saturer complÚtement la mémoire et le CPU. Le systÚme devient inutilisable en quelques secondes.
:() # Définit une fonction nommée ":"
{ :|:& }; # La fonction s'appelle elle-mĂȘme deux fois
: # Lance la fonction â explosion exponentielle
{ :|:& }; # La fonction s'appelle elle-mĂȘme deux fois
: # Lance la fonction â explosion exponentielle
La progression mortelle
1 processus â 2 â 4 â 8 â 16 â 32 â 64 â 128 â 256... En quelques itĂ©rations, des milliers de processus s'accumulent. Le systĂšme ne peut plus rien faire d'autre. Seul un redĂ©marrage forcĂ© (bouton power) peut sauver la situation.
â Protection
Dans
/etc/security/limits.conf, dĂ©finir * hard nproc 100 limite le nombre de processus par utilisateur et rend la fork bomb inoffensive.â â Niveau ExtrĂȘme â effets irrĂ©versibles
dd if=/dev/zero of=/dev/sda
đ DESTRUCTION DISQUE
Ăcrase intĂ©gralement le disque dur avec des zĂ©ros. Tout â systĂšme, donnĂ©es, partitions â est effacĂ© de façon non rĂ©cupĂ©rable. UtilisĂ© lĂ©gitimement pour effacer un disque avant de le revendre, mais dĂ©vastateur par erreur.
dd if=/dev/zero of=/dev/sda
# dd = disk duplicator
# if = input file : /dev/zero génÚre des zéros infinis
# of = output file : /dev/sda = ton premier disque dur
# dd = disk duplicator
# if = input file : /dev/zero génÚre des zéros infinis
# of = output file : /dev/sda = ton premier disque dur
â Usage lĂ©gitime
Pour créer une image ISO sur une clé USB :
dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress. Toujours vérifier of= avec lsblk avant d'exécuter.chmod -R 777 /
đ SĂCURITĂ ANĂANTIE
Donne Ă tout le monde tous les droits sur tous les fichiers du systĂšme. N'importe quel utilisateur peut lire, modifier ou supprimer n'importe quoi â y compris les mots de passe, les clĂ©s SSH, les configs critiques.
chmod -R 777 /
# -R = récursif (tout le systÚme)
# 777 = rwxrwxrwx = tout le monde peut tout faire
# / = Ă partir de la racine
# -R = récursif (tout le systÚme)
# 777 = rwxrwxrwx = tout le monde peut tout faire
# / = Ă partir de la racine
â L'alternative correcte
Pour rendre un dossier web accessible :
chmod -R 755 /var/www/monsite. Toujours appliquer les permissions au chemin précis, jamais à /.mv /home/* /dev/null
đ PERTE DE DONNĂES
/dev/null est le "trou noir" de Linux â tout ce qu'on y envoie disparaĂźt Ă jamais. DĂ©placer des fichiers vers /dev/null les efface irrĂ©mĂ©diablement, sans confirmation.
mv /home/* /dev/null
# mv = déplacer
# /home/* = tous les dossiers utilisateurs
# /dev/null = le néant. Point de non-retour.
# mv = déplacer
# /home/* = tous les dossiers utilisateurs
# /dev/null = le néant. Point de non-retour.
â Usage correct de /dev/null
/dev/null est utile pour supprimer la sortie d'une commande : commande 2>/dev/null supprime les messages d'erreur. Ne jamais l'utiliser comme destination de mv.â Niveau Catastrophique â rĂ©cits du monde rĂ©el
đ L'incident GitLab â 2017
En janvier 2017, un ingénieur de GitLab effectuait une opération de maintenance sur le mauvais serveur. Il exécuta
rm -rf sur la base de donnĂ©es de production au lieu de staging. 300 Go de donnĂ©es de 5000 clients supprimĂ©s. Les backups Ă©taient dĂ©faillants. GitLab perdit 6 heures de donnĂ©es. L'ingĂ©nieur exĂ©cuta la commande publiquement, en livestream, devant des milliers de spectateurs. La transparence de GitLab dans la gestion de crise est devenue un modĂšle.đ La commande du vendredi soir
Un admin systÚme voulait nettoyer un dossier temporaire. Fatigué aprÚs une longue semaine, il tapa
rm -rf /tmp /mon-dossier avec une espace entre /tmp et /mon-dossier. Bash interprĂ©ta ça comme deux arguments sĂ©parĂ©s : supprimer /tmp ET /mon-dossier. Ce genre d'erreur de frappe a pris des serveurs de production entiers.LES RĂGLES D'OR
01
Toujours tester une commande dangereuse avec
echo devant â echo rm -rf ./dossier affiche ce qu'elle ferait sans l'exĂ©cuter.02
Avant
rm -rf, faire un ls sur le mĂȘme chemin pour vĂ©rifier ce qui va ĂȘtre supprimĂ©.03
Ne jamais copier-coller une commande depuis internet sans la comprendre entiĂšrement, mot par mot.
04
Toujours avoir une sauvegarde récente avant toute opération en production.
05
Si une commande te demande
sudo et que tu n'es pas sûr de ce qu'elle fait, c'est le bon moment pour faire une pause.06
La rÚgle du principle of least privilege : toujours utiliser le compte avec le moins de droits nécessaires.