Nal',
J'ai fait de la merde.
#rm -rf /etc /dev
Normalement la plupart d'entre vous a déjà compris ce que je viens de faire, se tire les cheveux et se demande comment j'ai pu faire ça. Je vais détailler…
1/ 16h42 - Jusqu'ici, tout va bien…
Je suis chargé, entre autres choses, d'aller nettoyer quelques répertoires SFTP chroot contenant des répertoires usr, lib, lib64, etc, dev.
Je me place dans mes répertoires SFTP chroot et je lance
#rm -rf /etc /dev lib lib64 usr
A ce moment, je ne m'en suis pas encore rendu compte…
2/ 17h05 - Y a-t-il une intervention sur la machine ?
Je perds toutes mes sessions SSH. Je demande s'il y a une intervention sur la machine. On m'informe qu'elle semble être foutue en l'air. Ca lâche un "Qui a fait un rm -rf /* ?" pour plaisanter. Je rigole également et je ne percute toujours pas.
3/ 17h43 - Le coupable est démasqué
Un rapide check sur le bash history via iDRAC et le coupable est démasqué. Ca vient de ma session. Je ne comprends toujours pas. Puis on me montre la commande fatale… OK j'ai compris…
4/ 17h45 - Vive les backups
On a des backups quotidiens, heureusement. Seulement on ne peut pas monter /dev et /etc du backup parce qu'on boot sur une debian-free et on est sur une debian non-free… On les récupère en .tar.gz et on les redépose au bon endroit. On arrive à accéder en ssh à la machine, les voyants repassent au vert. Ouf…
5/ 19h25 - Plus de honte que de mal
Au final j'ai seulement perdu une petite partie de mon travail (quelques SFTP crées, des mises à jour sur l'expiration de quelques mots de passe), fait perdre du temps à quelques intervenants et surtout pris une grosse honte… On m'a rassuré sur le fait que "ça arrive". J'ai beaucoup apprécié l'attitude des supérieurs qui ont simplement cherché à comprendre comment c'est arrivé sans jamais me jeter la pierre. Je me la jette tout seul.
6/ Il fallait que ça arrive
Je suis toute la journée en root sur la prod… Oui vous avez bien lu. Pourquoi ? Parce que l'installation d'une grosse partie de notre production est installée et fonctionnelle en root… J'ai alerté dès le premier jour de ma prise de fonctions sur ce problème et qu'un jour, quelqu'un fera de la merde.
Ce jour est arrivé et c'est moi qui ai fait de la merde.
Je suis encore mort de honte.
Des dispositions seront sans doute prises prochainement pour que cela ne puisse plus se produire. Un mal pour un bien ? Sans doute… Finalement, le plus grave, c'est mon sentiment de honte. Maintenant je vais me mettre en boule dans me lit pour le reste du week-end.
# Savoir écrire
Posté par Nibel . Évalué à 5.
Devrait être :
Je perds toutes mes sessions SSH
une debian-free
La majeure partie des morts l'était déjà de son vivant et le jour venu, ils n'ont pas senti la différence.
[^] # Re: Savoir écrire
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
Corrigé, merci.
# blameless postmortem
Posté par Krunch (site web personnel) . Évalué à 10. Dernière modification le 20 janvier 2023 à 22:54.
Je suggère de documenter.
https://sre.google/sre-book/postmortem-culture/
https://sre.google/workbook/postmortem-culture/
https://sre.google/sre-book/example-postmortem/
Après l'astuce c'est de refaire la même « erreur » toutes les semaines jusqu'à ce que le problème soit corrigé. Au niveau suivant tu déclenche tous les problèmes possibles et imaginables jusqu'à ce que le processus d'analyse d'incident soit bien huilé.
De mon expérience les meilleurs sysadmins sont ceux qui cassent plein de trucs et analysent comment c'est arrivé.
#hugops
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# il y a un proverbe qui dit grosso modo
Posté par totof2000 . Évalué à 10. Dernière modification le 21 janvier 2023 à 00:00.
Il existe 2 sortes d'admin : ceux qui ont fait une connerie en root, et ceux qui vont en faire une.
Bah oui, le pire dans ce cas la c'est de blamer les gens, qui chercheront à cacher la prochaine fois qu'ils feront une erreur. Puis les sauvegardes, ça sert aussi à ça: a ratrapper ses conneries … Enfin, le plus important ce n'est pas de faire ou de ne pas faire d'erreur, mais c'est l'attitude que l'on a ensuite : soit on sait réparer et on répare, soit on ne sait pas réparer mais on ne reste pas passif, au moins on cherche à aider pour réparer (ou on suit pour pouvoir réparer soi-même la prochaine fois).
Une de mes premieres conneries a été de faire en root un cp /dev/null en pensant que ma commande allait mettre mon fichier à la poubelle. Aujourd'hui j'en ris …. mais a l'époque, j'ai eu le même sentiment de honte. On aurait pu s'en rendre compte longtemps après, lorsque les redirections vers /dev/null auraient rempli le filesystem / de la machine sur laquelle on a fait ça, mais par chance, on avait un script d'alerting qui faisait un cat /dev/null et qui ne marchait plus comme prévu et générait des faux positifs. Quand l'admin qui a détecté et corrigé le problème a communiqué son constat, et a cherché à comprendre pourquoi, j'ai tilté et dit tout de suite que c'était moi (il a ralé un peu mais sans plus). Si on avait pas détecté le problème rapidement, je pense que jamais je n'aurais su que c'était moi qui avait fait de la merde, et j'aurait peut-être refait plusieurs fois l'erreur avant de la comprendre.
[^] # Re: il y a un proverbe qui dit grosso modo
Posté par barmic 🦦 . Évalué à 4.
Si tu la faisais suffisamment régulièrement, il n'y aurait pas de problème d'espace disque
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll
[^] # Re: il y a un proverbe qui dit grosso modo
Posté par Jean-Baptiste Faure . Évalué à 5.
[mode béotien ON]
Comprends pas : ça ne déclenche pas une erreur de syntaxe ? Il n'y a pas de destination pour la copie de /dev/null et je n'ai pas vu dans la doc de cp qu'il y a une valeur par défaut.
[mode béotien OFF]
[^] # Re: il y a un proverbe qui dit grosso modo
Posté par raphj . Évalué à 10. Dernière modification le 21 janvier 2023 à 12:07.
Il dit
cp /dev/null
mais je pense que totof2000 a lancé une commande de la formeEt du coup, ça remplace
/dev/null
par une copie du fichier donné en premier paramètre decp
. Et du coup/dev/null
devient un fichier normal comme les autre, au lieu du fichier périphérique spécial "trou noir" qu'on connait.Il n'y a pas d'erreur de syntaxe, parce que /dev/null est un nom de fichier tout à fait valide.
[^] # Re: il y a un proverbe qui dit grosso modo
Posté par totof2000 . Évalué à 5.
Oui effectivement c'est ça .. j'avais mis (sans précaution pour protéger les "balises") :
[^] # Re: il y a un proverbe qui dit grosso modo
Posté par Jean-Baptiste Faure . Évalué à 4.
Ok, merci. Comme ça je comprends mieux.
# Pas le seul à rester en boule ce week-end
Posté par tout . Évalué à 10. Dernière modification le 21 janvier 2023 à 00:23.
Aujourd'hui, j'ai envoyé à plein de personnes un courriel avec un fichier en pièce jointe. Sauf que je n'ai pas envoyé le bon fichier mais un autre fichier qui était dans le même dossier : un fichier déchiffré qui contenait tous les identifiants et mots de passe des serveurs web. Heureusement, j'ai relu le courriel envoyé et je m'en suis aperçu. Il a fallu changer les mots de passe des utilisateurs et des bases de données. La honte totale.
[^] # Re: Pas le seul à rester en boule ce week-end
Posté par Krunch (site web personnel) . Évalué à 10.
J'espère que le postmortem contient un plan pour se débarrasser de l'utilisation de mots de passes partagés. C'est le système qui est pourri, pas l'opérateur.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# c'est pour ca que
Posté par oau . Évalué à 8.
et on teste les backup
ceph + borg
[^] # Re: c'est pour ca que
Posté par Pol' uX (site web personnel) . Évalué à 7.
Et dont on teste la restauration avant d'en avoir besoin.
Adhérer à l'April, ça vous tente ?
[^] # Re: c'est pour ca que
Posté par oau . Évalué à 3.
c'était le sens de ces mots :)
[^] # Re: est-ce pour ça que
Posté par Pol' uX (site web personnel) . Évalué à 3.
Ha oui. :)
Adhérer à l'April, ça vous tente ?
[^] # Re: c'est pour ca que
Posté par Psychofox (Mastodon) . Évalué à 6.
Et on s'assure d'avoir les credentials et la doc dans un endroit safe (et si possible en lecture seule et/ou air-gaped) pour pouvoir s'y apouyer s'il faut remonter un système de backup de zero pour pouvoir restaurer les données hébergées sur un autre site.
[^] # Re: c'est pour ca que
Posté par nonas . Évalué à 3. Dernière modification le 22 janvier 2023 à 12:19.
Ah oui, j'étais content le 14 juillet, serveur de documentation en carafe, personne à la hotline… Depuis j'en fais régulièrement un export HTML en local…
[^] # Re: c'est pour ca que
Posté par Christophe B. (site web personnel) . Évalué à 10.
La procédure de démarrage des serveurs … sur papier dans la salle serveur
Parce que la doc de démarrage des serveurs en PDF dans le serveur de fichiers … c'est pas utile si l'infra est éteinte :)
# Expérience et postmortem
Posté par Benoît Sibaud (site web personnel) . Évalué à 10.
L'important est l'expérience retirée et l'amélioration va le post mortel.
Un jour j'ai fait un UPDATE users SET password sur la base de prod de linuxfr.org et j'ai oublié le WHERE user_id.
Un jour j'ai déplacé /usr/lib dans un autre système de fichiers plus grand.
Un jour j'ai validé une merge request de supervision, qui était en alerte par défaut pour cause de mauvais seuil, et le collègue l'a déployé séquentiellement sur 5 plateformes sans sourciller, 5 alertes en parallèle, 2 prod touchées.
Un jour j'ai déployé sur la mauvaise plate-forme.
Un jour on a oublié de renouveler le certificat de LinuxFr.org
…
Ça fait partie du taf quand tu gères des machines, il y aura des erreurs… l'expérience et les postmortems définissent les seuils des différents cas : celles qui sont empêchées, celles qui arrivent c'est chiant mais on s'en sort, et celles qui sont fatales ("oh le datacenter brûle et je n'ai rien ailleurs").
[^] # Re: Expérience et postmortem
Posté par Glandos . Évalué à 10.
Un jour, un script qui faisait :
Je me souviens plus de la syntaxe de mtime, mais le but était de supprimer les fichiers de plus 7 jours. Et bien sûr, un jour, on l'a lancé sans argument. En root. Ça a supprimé '/'.
Solution :
set -u
en début de script qui traite les variables non existantes comme des erreurs.En tout cas, on a un tableau de « Succès » qui recense toutes ses boulettes. Ça fait partie du travail :)
[^] # Re: Expérience et postmortem
Posté par Christophe B. (site web personnel) . Évalué à 4.
Pas mal
J'avais connu un script qui archivais des fichiers dans un répertoire 'arch'
qui créait le répertoire arch au cas ou il n'existait … que du classique pour un shell script
par contre ce script fonctionnait sur le répertoire courant, et un type du support a eu l'idée de le lancer depuis la racine '/' car il ne savait pas ce que faisait ce script, et en étant 'root'
=> une restauration a tout corrigé, avec AIX (Unix d'IBM) pas mal de choses sont prévues pour ce genre de problème.
Morale :
ne pas lancer des scripts sans les regarder, encore moins quand on est root
quand on ne sait pas, on ne touche pas … surtout sur une machine de PROD en exploitation
[^] # Re: Expérience et postmortem
Posté par cg . Évalué à 10.
Un jour, j'ai fait quasiment la même chose dans une CMDB qui servait de source à un DNS. J'ai attribué la même IP à des milliers de noms de serveurs.
La requête contenait un
where 2012
(ce qui donne unVrai
) au lieu dewhere id_serveur=2012
.Ma procédure, écrite 15 jours avant l'opération de maintenance, et testée sur une base de test, a été revue par mes collègues, et par un comité de contrôle (revue de changement). Personne n'a détecté le problème avant que je voie mysql répondre qu'il avait modifié plusieurs milliers de lignes au lieu d'une seule. Bien sûr, je n'avais pas fait de transaction. On a rollback avant que le cron d'update du DNS de prod ne passe, mais j'ai mis des heures à m'en remettre.
Bref, ça arrive, c'est très désagréable, mais ça fait clairement partie du métier.
Les seuls qui ne font pas de conneries sont ceux qui ne font rien !
[^] # Re: Expérience et postmortem
Posté par Tonton Th (Mastodon) . Évalué à 4.
Vu dans la vie réelle, joué il y a longtemps par un chef-de-projet qui voulait se la péter w4rl0rd sans passer par l'interface web ad-hoc :
UPDATE yusers SET phonenumber = '06XXXXXXXX';
plus de 90.000 utilisateurs avec le même numéro de téléphone, bonjour la panique :)
[^] # Re: Expérience et postmortem
Posté par barmic 🦦 . Évalué à 6.
Je ne te donnerais jamais mon adresse.
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll
[^] # Re: Expérience et postmortem
Posté par Benoît Sibaud (site web personnel) . Évalué à 3.
Apparemment je n'apprends pas vite à me méfier du correcteur sur mobile…
[^] # Re: Expérience et postmortem
Posté par ted (site web personnel) . Évalué à 5.
Il faut que tu désactives la traduction automatique du Latin, d'autant plus qu'elle laisse à désirer
Un LUG en Lorraine : https://enunclic-cappel.fr
[^] # Re: Expérience et postmortem
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 4.
Il se dit que des guerres ont pu être déclarées pour des coquilles (je ne parle pas de moules mais de typographie).
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
# J'ai fait mieux ...
Posté par abgech . Évalué à 3. Dernière modification le 21 janvier 2023 à 17:20.
Sur mon PC personnel, je me croyais dans un répertoire dont je devais supprimer le contenu, mais en fait j'étais sous /.
Je tape :
# rm -rf *
L'avantage, c'est que l'on s'aperçoit immédiatement que l'on vient de faire une immense connerie.
Heureusement, je ne suis pas tombé de la dernière pluie et j'avais des sauvegardes de moins de 24 h.
Mais j'ai tout de même dû faire une nouvelle installation et reprendre mes données à partir de la sauvegarde.
Bref, une demi-journée de perdue.
Depuis, je mets l'utilisateur, le nom de l'hôte, le numéro de console et le chemin d'accès dans l'invite de la ligne de commande :
ab@BA1.P4-/u/voyages$
cela minimise fortement le risque d'une catastrophe.
[^] # Re: J'ai fait mieux ...
Posté par barmic 🦦 . Évalué à 2. Dernière modification le 21 janvier 2023 à 18:24.
Les couleurs ça aide aussi.
Moi la dernière connerie du genre que j'ai fais était un peu original (sur machine perso). Je pensais être dans un chroot et :
…
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll
# 1er erreur
Posté par Donk . Évalué à 10.
Je ne connais pas tes horaires, mais pour moi la première erreur fut de faire ce type d'opération un vendredi à 16h42.
[^] # Re: 1er erreur
Posté par Watchwolf . Évalué à 5.
bien d'accord.
On ne touche pas à la prod un vendredi
[^] # Re: 1er erreur
Posté par totof2000 . Évalué à 10.
Ca veut dire que si un filesystem qui contient des répertoires sftp chroot est plein ou presque plein le vendredi, on attend lundi pour faire du ménage ?
Non, il ne faut pas confondre "on ne fait pas de mise en prod le vendredi" avec "on ne touche pas à la prod le vendredi".
[^] # Re: 1er erreur
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Je pense qu'il voulait passer le flambeau à l'astreinte et partir en week-end plus tôt
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: 1er erreur
Posté par Krunch (site web personnel) . Évalué à 2.
Ça me rappelle cette bien belle histoire : https://www.linkedin.com/posts/david-masover_opentowork-activity-7023167482353881089-WiWI
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: 1er erreur
Posté par Tristan Gallet . Évalué à 1.
Pour se souvenir le vendredi c'est PIPE : Pas d'intervention, pas d'emmerde :) !
# Quel rapport free/non-free
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 6.
Yep, ça arrive.
Juste un truc qui me perplexifie dans cette histoire:
Quel rapport entre les backups et debian-free/non-free qui sont des packets supplémentaires / firmware additionnels ?
Le backup n'est pas accessible car la carte réseau utilise un firmware closed ? si c'est ça votre "rescue" devrait être ajusté pour inclure cette contrainte…
Also "/dev/" est soit un dossier virtuel généré par udev, il suffit généralement de retrigger udev pour qu'il soit refresh:
Et si c'est un /dev statique il y a la commande MAKEDEV normalement, quoi qu'elle est généralement dans /dev ce qui pourrait poser un problème…
[^] # Re: Quel rapport free/non-free
Posté par cg . Évalué à 5.
Ben tu le dis : driver réseau non libre (coucou bnx2) -> pas de réseau -> pas de restore.
À mon travail les images de rescue PXE ont tous les drivers non-free inclus, comme ça on se pose pas trop la question.
Tu as aussi le cas des serveurs en LACP/bonding, qui pose problème lors d'un boot de secours en PXE. Il faut alors recâbler ou supprimer temporairement l'agrégat sur le switch (existe aussi saveur tag de VLAN).
# Pareil pour moi y'a plus de 15 ans
Posté par Colin Pitrat (site web personnel) . Évalué à 5.
Je venais d'arriver dans mon nouveau boulot, on me confie le role de copier le répertoire /etc de l'ancien serveur méga critique vers le nouveau. Je tente une première copie en locale mais y'a un problème (je ne sais plus quoi). Au lieu de faire
rm -rf etc
(ou ./etc) je faisrm -rf /etc
. Contrairement à toi je m'en rends compte tout de suite, donc Ctrl-C immédiat. Mais le mal est déjà fait: une partie des fichiers est perdue.Contrairement à toi, pas de backup. On a passé plusieurs jours à tenter de récupérer des confs manquantes et à analyser ce qui était cassé.
À ce moment là, grosse honte pour moi. Avec le recul, confier ça au petit nouveau, lui faire faire direct sur la machine sans préparation sur une machine de test, ne pas avoir de backups, … C'était pas moi qui avait le plus à me reprocher !
[^] # Re: Pareil pour moi y'a plus de 15 ans
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 3.
Y a nouveau et nouveau :D J'ai déjà débarqué sur des missions où vous êtes carrément là en mode GIGN/pompiers/whatever donc pas vraiment des nouveaux mais les experts venus nettoyer et sauver la mise. Je sais, c'est tordu ; et même quand on y arrive en général on brûle des cierges parce-que tout s'est bien passé (et j'aime faire un post-vivantem pour tenter de trouver tout ce qui aurait pu foirer et qu'on n'a pas vu sur le coup et comment s'en prémunir les fois d'après.)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# Dans le même genre
Posté par jeberger (site web personnel) . Évalué à 5.
Dans ma boîte, un jour quelqu'un a lancé un
chmod -x /usr/bin/* /usr/sbin/*
sur tous les PC Linux de tous les utilisateurs via le logiciel de gestion de parc…[^] # Re: Dans le même genre
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
Ouais y en a marre du porno dans les corbeilles a-t-il déclaré. Je vais aussi lancer un
rm ********
pour supprimer les mots de passe qui traînent aurait-il ajouté. Avant de conclure oups, la boulette.[^] # Re: Dans le même genre
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Sait-on pourquoi ?
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Dans le même genre
Posté par jeberger (site web personnel) . Évalué à 1.
Je n'ai jamais su ce qu'il cherchait à faire, non.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.