1 commentaires

 
GN⁺ 2024-02-10
Avis de Hacker News
  • Je suis la personne qui a créé epitaphs. Demandez-moi n’importe quoi

    • Le billet de blog dit que « quelqu’un d’autre qui vous connaît devait l’ajouter », mais ce n’est pas exact, ou en tout cas ça ne l’est plus
      Si un employé envoie du contenu par e-mail à une adresse spéciale, ce contenu peut être affiché quand il quitte l’entreprise. C’est ce que j’ai fait, mais je ne peux pas revérifier si cela a bien fonctionné
    • Est-ce qu’on peut demander de quelle entreprise il s’agissait ?
    • Est-ce que c’est encore en fonctionnement ?
      Est-ce que les RH vous ont déjà demandé de le modifier ? J’ai quitté l’entreprise il y a 5 ans, et j’adorais vraiment cette fonctionnalité
    • Pourquoi avez-vous créé epitaphs ? Y a-t-il eu des défis organisationnels ou techniques intéressants pendant sa création ?
  • Pour faire tourner ce genre de chose, je recommande vivement d’utiliser Git
    Vous pouvez lancer quelque chose comme ça dans cron :
    curl https://internal.corp/employees.txt > employees.txt
    git add employees.txt
    git commit -m "Automated: $(date -u)" || exit 0
    || exit 0 évite une erreur s’il n’y a rien à committer. Désormais, tout l’historique des changements de la source d’information est conservé sous forme de commits, et il suffit d’exécuter git log pour le consulter. Je fais souvent tourner ce genre de chose avec des GitHub Actions planifiées ; un exemple est disponible sur https://simonwillison.net/2020/Oct/9/git-scraping/

    • Je fais quelque chose de similaire, mais au lieu de || exit 0, j’utilise --allow-empty avec git commit
      Les commits vides ne me dérangent pas, car ils permettent de savoir que l’exécution automatique n’a pas échoué : elle s’est bien déroulée, mais il n’y avait aucun changement
    • Pour le déterminisme, ajouter | sort pourrait aussi être une bonne idée. Pour ce genre de petites données, Git est une base de données sous-estimée
    • J’ai commencé à utiliser la même technique pour créer une archive diffable des journaux en langue facile finnoise
      Cela m’a beaucoup aidé à collecter des entrées compréhensibles de grande qualité. Merci
      https://github.com/hiAndrewQuinn/selkouutiset-scrape/
    • J’envisage sérieusement d’utiliser Git pour toutes sortes de données qui changent souvent, mais pas énormément. Par exemple la liste des livres sur une étagère
      Cela dit, je veux aussi des fonctionnalités de base de données transactionnelle par-dessus ce genre de choses. Git fait bien cette partie. En même temps, je veux aussi des index rapides sur certains champs, ce que Git ne fait pas très bien. Je pense donc essayer une sorte de « standard » consistant à dumper sqlite dans Git. N’importe quelle transaction peut être représentée par un commit Git, et on peut faire tourner les deux en parallèle pour la durabilité et une indexation raisonnable. La base sqlite peut être régénérée et réindexée à tout moment, et cela convient aussi dans une certaine mesure pour les sauvegardes.
      Pour l’instant, j’ai l’impression de faire du surplace, et je me contente de regarder où iront les bases de données ensuite
    • Si c’était un collègue, il aurait probablement voulu faire une analyse de réseau au fil du temps avec ces données, afin de voir, à partir des groupes vers lesquels les gens se déplacent au fil du temps, s’ils aimaient ou non travailler ensemble
  • J’ai créé un outil pour suivre LDAP de cette manière [0]. LDAP est une mine d’informations, et il est aussi très pratique pour le stalking
    Je trouvais étrangement intéressant de voir les gens partir et, si possible, depuis combien de temps ils travaillaient là. C’était aussi assez intéressant de voir des amis apprendre leur licenciement dans LDAP avant même de le savoir eux-mêmes. Dans le README, j’indiquais qu’avec l’intégration de webhooks Slack, on pouvait comprendre à la demande ce qui se passait dans l’annuaire LDAP, surveiller les nouvelles recrues, les départs, les promotions, ce que font les RH et quand, les modifications non autorisées, les données divulguées par erreur, ainsi que les connexions et déconnexions LDAP des utilisateurs. Il existe aussi LDAPmonitor[1], qui fait en pratique la même chose pour Microsoft et Active Directory
    [0]https://github.com/MegaManSec/LDAP-Monitoring-Watchdog
    [1]https://github.com/p0dalirius/LDAPmonitor

  • Les licenciements à l’ère du télétravail ont quelque chose d’étrange. Avant, on pouvait assez bien savoir qui avait été licencié en le voyant sortir avec un carton d’affaires, et on pouvait aller le voir pour proposer de se retrouver au bar du coin ou échanger ses coordonnées.
    On pouvait obtenir une certaine forme de clôture. Aujourd’hui, du jour au lendemain, plusieurs personnes cessent de répondre aux e-mails, et il faut attendre pour savoir si elles sont vraiment parties ou simplement occupées. Si on attendait un livrable nécessaire à un projet, il se peut qu’il n’arrive jamais, et on ne sait pas pourquoi pendant un bon moment. Même avec un annuaire d’entreprise, les gens y restent souvent plus de 60 jours à cause du WARN Act, et la plupart des entreprises ne semblent pas tenir de « liste des licenciés ». Quand on ne vous dit même pas qui a été licencié, et qu’on coupe les accès avant d’annoncer le licenciement, sans laisser l’occasion de dire au revoir, il est vraiment difficile d’avoir ce sentiment de clôture.

    • Voir sur Slack les comptes de personnes passer inactifs sans même un au revoir, c’est triste.
      Le pire patron que j’aie eu demandait l’accès aux comptes Slack d’anciens employés sous prétexte de chercher des données de passation sur leur travail. À chaque fois qu’il se connectait avec leur compte, celui-ci repassait parfois au vert. Voir le compte d’un ancien collègue devenir vert en sachant que son manager fouillait ses messages privés, c’était glaçant. Je sais bien que l’entreprise peut de toute façon consulter les messages Slack, mais voir son patron le faire en temps réel, c’est encore plus sinistre.
    • Au début, on a essayé de le faire, mais au début de la pandémie, le nombre de décès a augmenté si vite que l’organisation ne pouvait plus continuer à les annoncer.
      Le simple fait, pour les RH, d’essayer de rédiger quelques mots pour tout le monde était démoralisant, et là où il y avait eu une touche personnelle et vivante, il est resté une pâleur persistante. Les gens continuaient de disparaître, mais il n’y avait toujours aucune annonce sur leur départ ni sur la manière dont ils étaient partis.
      J’ai rencontré le General Counsel pour la dernière fois au début de la pandémie. Comme la plupart des gens pendant le confinement, il ne voyait personne en dehors de sa famille proche, et il n’avait pas eu l’occasion de raconter quelque chose de positif depuis des mois — ce qui, de toute façon, aurait peut-être fini par le tuer. Il a déversé tout ce qu’il était en train de boucler puis, en bon juriste, a écrit une excellente lettre au CIO, ce qui a débouché sur l’une de mes conversations préférées entre nous.
      Six mois plus tard, quelqu’un m’a appelé en disant qu’il se rendait au service juridique et que quelqu’un était mort, et j’ai aussitôt eu un mauvais pressentiment. J’ai fouillé le site web, l’annuaire, les avis de décès locaux, mais je n’ai rien trouvé, et le réseau de rumeurs était silencieux. J’ai donc appelé son assistante, qui m’a dit assez calmement que le GC était décédé six semaines plus tôt.
      Ce n’est que presque exactement un an plus tard que les procédures de l’organisation ont rattrapé leur retard et publié « Remembering $generalCounselor ». À ce moment-là, nous avions déjà manqué les obsèques, la famille avait déménagé, et beaucoup de gens se sentaient gênés d’envoyer des condoléances si tard. Voir la surprise, la honte et la tristesse des autres n’apportait pas de réconfort, mais cela m’a permis de comprendre que je n’étais pas le seul.
      Nous sommes une organisation pas petite, mais personnelle, et chaque décès a laissé un petit vide que nous n’avons pas su reconnaître ni traiter collectivement. Nous n’avons toujours pas de façon de gérer la perte, et nous n’en avons pas parlé. Quand un ancien contact enregistré réapparaît après la réattribution d’un poste interne, c’est inévitablement comme un appel venu de la tombe. On essaie de rester en contact et de suivre ce qui arrive aux gens, mais peu à peu les liens s’estompent, tout comme nos souvenirs et notre histoire avec eux.
    • Une chose qui me manque dans le travail au bureau, c’est le lien plus humain.
      Les gens qui passaient au bureau pour discuter de la vie et faire des blagues. Je n’ai jamais autant ri de ma vie. Dans l’ensemble, les relations étaient plus proches ; quand les gens partaient, c’était triste, mais on était heureux pour eux s’ils allaient vers mieux. Le télétravail paraît tellement aseptisé et impersonnel en comparaison. Je travaille à distance depuis environ 2015, donc ce n’est pas un plaidoyer pour le retour au bureau, juste de la nostalgie.
    • Couper les accès m’a toujours semblé stupide, et en tant que manager, je ne le faisais pas.
      Si j’ai travaillé avec quelqu’un en lui faisant confiance pendant trois ans, je peux encore lui faire confiance une ou deux semaines. Il peut terminer ce qu’il lui reste à faire et prendre le temps qu’il faut. Nous sommes tous des adultes. Je comprends que, dans le pire des cas, quelque chose de mauvais puisse arriver, mais c’est toujours vrai.
    • C’est peut-être le seul moment où je dirai cela, mais je suis content que LinkedIn existe. Au moins, je sais que je peux toujours reprendre contact avec les personnes qui sont parties.
  • J’ai aimé ce passage :
    « Au passage, si quelqu’un se met en colère parce que vous faites tourner ce genre de chose, il y a de bonnes chances que vous n’ayez de toute façon pas envie de travailler là-bas. À l’inverse, si l’IT ou une organisation similaire peut créer ce type d’outil sans se sentir “menacée”, vous êtes peut-être dans un endroit où l’on prend réellement plaisir à fabriquer des choses intéressantes et utiles. Ce genre d’endroit est précieux. Ça ne dure souvent pas longtemps. »

    • Cela dit, si vous voulez quand même y travailler, mieux vaut d’abord vérifier la situation juridique
      Il est presque certain que cela puisse relever d’un traitement non autorisé de données personnelles. Avoir des droits d’accès ne veut pas dire qu’on peut en faire ce qu’on veut. En particulier, l’archivage, la conservation d’historique et le croisement avec des données externes ne correspondent pas à l’usage prévu de ce type d’interface. Emporter les informations chez soi, par exemple sur un ordinateur portable de travail, peut poser d’autres problèmes, et pourrait aussi être considéré comme une extraction de secrets d’affaires.
      Au moins en Europe, abuser de ce genre d’interface a de fortes chances d’être illégal, et encore plus si l’on conserve des copies ou des diffs. L’employeur pourrait être tenu de prendre des mesures et, s’il ne le fait pas, engager sa responsabilité. Ou bien il pourrait plus tard se servir commodément de cette infraction comme prétexte pour mettre fin au contrat. Ce serait d’autant plus vrai si vous utilisez ces informations comme levier.
      Plus le réseau est grand, plus le risque de s’attirer des ennuis semble élevé. À l’inverse, si ce n’est pas le cas, l’intérêt de collecter ces données est moindre. Ne vaudrait-il pas mieux s’organiser avec ses collègues pour partager volontairement des informations sur l’emploi et gagner du pouvoir de négociation collectif ?
    • Je me demande si cela relève des données personnelles. Après tout, c’est une copie des noms, intitulés de poste et durées d’emploi de tout le monde
      Beaucoup d’entreprises européennes seraient probablement prudentes à l’idée qu’un employé conserve ce type de liste
    • Amazon a licencié quelqu’un qui avait partagé une requête LDAP permettant de trouver les personnes touchées après une vague de licenciements. Il n’avait pourtant pas divulgué d’informations
    • Ce n’est pas bien du tout. Ce n’est que de la posture exagérée
      La façon de le vérifier, c’est de chercher des commentaires HN qui adoptent la même posture. Une fois la fenêtre d’Overton élargie, les gens ne se retiennent plus et disent ouvertement ce que l’on sait déjà : il s’agit d’un abus de système qui transforme un vieil annuaire en tabloïd de ragots, au grand étonnement des personnes concernées.
      Par exemple : « Au début, je ne regardais que les comptes désactivés. Puis j’ai commencé à suivre les changements de poste, les changements de nom de famille (mariage), la taille des équipes, l’effectif de l’entreprise dans le temps, etc. », « LDAP est plein de secrets. C’est une excellente façon de voir ce qui se passe dans l’entreprise, et il est étonnant de pouvoir obtenir presque tout cela en accès anonyme. J’ai repéré des fusions d’équipes ou de départements avant leur annonce, et les listes de diffusion secrètes de projets internes permettent aussi, en regardant leurs membres, de deviner ce qui se prépare », « Beaucoup de choses étranges reposent sur le fait que l’arbre LDAP soit largement accessible. Simplement, il fuit plus d’informations que la plupart des gens ne l’imaginent », « surveiller quand les RH font quoi, et détecter quand des utilisateurs se connectent à LDAP ou s’en déconnectent », ce genre de choses
  • LDAP est plein de secrets. C’est une excellente façon d’observer ce qui se passe dans une entreprise, et il est étonnant de pouvoir obtenir presque tout cela en accès anonyme
    J’ai déjà repéré des fusions d’équipes ou de départements avant leur annonce. Les listes de diffusion secrètes de projets internes permettent aussi, en regardant leurs membres, de découvrir ce qui se trame. Et si les adresses e-mail en révèlent une partie, c’est du bonus. ldapsearch est pratique si l’on connaît bien LDAP, et si l’on veut simplement explorer, Apache LDAP Studio est un excellent outil avec interface graphique. Tout le monde devrait au moins en savoir assez pour créer un service de connexion qui se bind à LDAP pour des applications internes. On peut s’appuyer sur les groupes maintenus par les administrateurs système pour contrôler les droits des applications ; c’est très puissant et facile à mettre en route rapidement

    • Je suis toujours étonné de voir des entreprises permettre à des utilisateurs quelconques, voire anonymes, d’indexer tout l’arbre AD de l’entreprise
      C’est aimable, certes, mais quand même. Et c’est souvent le seul moyen d’obtenir des informations qui ne figurent pas sur les pages intranet : par exemple quelles équipes existent réellement à l’IT, où se trouvent les bureaux, qui est le manager de quelqu’un, et bien sûr de quelle liste de diffusion, qui cause des problèmes d’accès à un portail interne, je suis absent alors qu’un autre utilisateur y figure
    • Utiliser des groupes LDAP pour l’authentification d’applications internes ? Si vous voulez devenir le prochain SolarWinds, pourquoi pas
  • C’est surprenant de voir autant de personnes arriver indépendamment à la même idée. Dans un ancien poste, j’avais créé « the sackinator »
    « Sacked » signifie licencié. C’était une tâche cron qui dumpait chaque nuit tout l’annuaire AD, et un script qui faisait le diff entre les sorties de deux jours quelconques. Comme les données étaient dumpées, on pouvait revenir à tout moment pour faire des analyses supplémentaires. Au début, je ne regardais que les comptes désactivés ; plus tard, j’ai commencé à suivre les changements de poste, les changements de nom de famille (mariage), la taille des équipes, l’effectif de l’entreprise dans le temps, etc. Je suis entièrement d’accord avec l’idée qu’il faut chérir les endroits où l’on peut créer ce type d’outil sans que l’IT se sente menacée

  • Hahaha. Il existe un script très similaire géré chez « KTMJ ». Il ne sert pas à trouver des utilisateurs désactivés, mais à synchroniser certains attributs LDAP vers un autre système
    L’organisation est assez grande, avec plus de 300 000 utilisateurs. Même dans le court laps de temps entre le moment où le script interroge LDAP et prépare le fichier de synchronisation, puis celui où l’import réel de synchronisation vérifie que chaque utilisateur existe encore, des centaines de comptes sont déjà désactivés et consignés dans le fichier de log « error ». La synchronisation réelle et le fichier de log « error » échappent à mon contrôle direct.
    Si j’ai ri comme un fou, c’est parce que mon contrat doit prendre fin pour cause de « contraintes budgétaires ». Je m’y attendais, ayant déjà traversé plusieurs vagues de licenciements. Mon compte fera lui aussi partie de ceux qui seront désactivés lors du prochain cycle mensuel, mais avant cela je dois transmettre à mes successeurs la procédure de traitement et le comportement attendu de journalisation « error » pour les utilisateurs désactivés

  • Il n’y a pas besoin de voir cela uniquement de façon négative. Là où je travaille, nous appelons cet outil « new-hires »
    Il utilise une clé API en lecture seule, limitée, vers un outil RH tiers, clé que m’a donnée la People Director. Il y a parfois des lignes qui commencent par -, mais le nom de l’outil vient des lignes qui commencent par +.
    new-hires est construit au-dessus du module/CLI Python « people » de notre monorepo. Cet outil est bien plus utile qu’un diff d’organigramme. Il permet de savoir qui est dans quelle équipe, où se trouve la personne, si elle travaille aujourd’hui, s’il est temps de célébrer son anniversaire d’ancienneté, etc. Il respecte aussi mon « test décisif ZFS » pour les bons outils CLI, en proposant -pH pour une sortie parsable et sans en-tête. Ce genre d’endroit mérite vraiment d’être chéri

    • C’est où ? Ça a l’air d’un endroit vraiment bien
  • À mon premier poste, j’ai essayé de créer un système de ce genre, mais mon manager l’a appris et l’a explicitement interdit
    Plus tard, cette entreprise a licencié 15 % de ses ingénieurs logiciels en une seule journée. L’équipe support a créé dans le gestionnaire public de tickets des demandes de suppression de comptes employés, si bien que beaucoup de gens l’ont appris de cette manière avant même de recevoir l’invitation à la réunion