Dommage, je m'en servais pour régler en espèces et ainsi éviter de filer le numéro de ma CB à Valve / au ternet. :(
L’APD pâtirait également de la mansuétude de la Cour des marchés, une chambre spécialisée de la Cour d’appel de Bruxelles qui, entre autres, traite les recours contre les décisions des régulateurs, déplore Koen Gorissen :
« On nous demande de frapper fort, mais la Cour des marchés ne nous aide pas. C’est regrettable de voir que lorsque l’on inflige des amendes sévères, la Cour des marchés les réduit parfois à 1 euro. Ils soutiennent que c’est encore dissuasif, mais excusez-moi, 1 euro ou rien… »
« La Cour des marchés, c’est le tribunal des entreprises », renchérit Alexandra Jaspar : « Et on a le sentiment qu’elle considère que la protection des données est un luxe, un droit qui ne vaut pas la peine d’être défendu, que les entreprises ont d’autres problèmes à régler… », ce pourquoi ils envisagent désormais de passer par le pénal, annonce Koen Gorissen :
« Nous allons donc utiliser d’autres instruments plus efficaces. Plutôt que de passer par le civil, nous allons désormais passer, pour des cas spécifiques, par un tribunal pénal. On a déjà intenté une action directe devant une cour correctionnelle. On peut aussi envisager des transactions pénales, via le parquet. Pour nous, ce qui compte, c’est de mettre fin à un traitement problématique de données. »
Évidemment, rien de similaire en France, pas vrai la CNIL et le Conseil d'État ? :)))) (À ceci près que je ne pense pas que le CE soit pro-business, l'explication est ailleurs, mais ça produit le même résultat.)
Pas trop convaincu par la piste pénale : l'APD belge sera substituée par le parquet, dont ça m'étonnerait qu'il soit plus une flèche que la Cour des marchés. Et, comme l'écrit l'article, ça sera sur un nombre très limité de dossiers. Il faudra voir également le problème de la territorialité de la juridiction pénale belge : je doute que le dirigeant d'un courtier en données (ou autre) qui n'a aucune présence dans le plat pays puisse être jugé là-bas.
Quant à lutter contre les grands méchants, je rappelle que l'APD belge a, au final, plutôt échoué face à l'IAB et à son TCF. Allez, disons que c'est la faute à la Cour des marchés. :))))
Bref, ça dresse un constat intéressant, mais le reste me semble des effets d'annonce qui n'auront aucune réalité.
La décision rendue par le Conseil d'État le 5 juin 2026 est d'une concision remarquable. Elle rejette, pour incompétence de la juridiction administrative, le recours formé par l'association Sites et Monuments contre la décision du Président de la République de prêter la tapisserie de Bayeux, pour une exposition au British Museum.
L'association invoquait des motifs de forme, notamment l'absence de contreseing du Premier ministre et du ministre de la Culture au regard de l'article 19 de la constitution. Sur le fond, elle voyait une erreur manifeste d'appréciation dans la décision de prêter une oeuvre exceptionnelle, alors qu'un voyage comportait des risques pour sa conservation. On ne connaîtra jamais les réponses à ces questions, car le Conseil d'État déclare la requête irrecevable en considérant la décision du Président de la République comme un acte de gouvernement. […]
[…]
Le principe est donc clair. Ce n'est pas parce que le Président prend une décision qu'il faut en déduire l'existence d'un acte de gouvernement. Encore faut-il que l'acte se rattache, par son nature et son objet, soit aux rapports entre les pouvoirs constitutionnels, soit à la conduite des relations internationales. Dans l'affaire de la tapisserie de Bayeux, on a pourtant l'impression que le Conseil d'État estime que, puisque le Président est intervenu, c'est sans doute que sa décision relevait des relations internationales et qu'elle devait ainsi être qualifiée d'acte de gouvernement. Le raisonnement est inversé. Ce n'est plus le contenu de l'acte qui fait l'acte de gouvernement, mais essentiellement son auteur.
[…]
Sans doute, mais l'analyse se rapproche tout de même un peu trop d'une émission historique conçue par Stéphane Bern. Tout y est. Les décisions se prennent entre les autorités royales naturellement bienveillantes lors d'un dîner de Cour, où l'on rappelle l'histoire millénaire qui unit nos deux pays....
Hélas, il ne faut pas confondre Gala et l'Actualité Juridique Droit administratif. On devrait plutôt se demander si le ministre de la Culture n'était pas compétent pour décider du prêt de la tapisserie. En droit positif, le prêt d'une oeuvre appartenant à une collection publique pour des expositions temporaires à l'étranger relève de procédures administratives spécifiques, dans le but de répondre aux exigences liées à leur conservation et à leur sécurité. Le ministre de la Culture dispose en principe de larges prérogatives pour encadrer, autoriser ou refuser de tels déplacements d'oeuvres patrimoniales. En l'espèce, il a été totalement court-circuité.
Supposons un instant, rien qu'un instant, que le ministre de la Culture ait pris la décision de prêter la tapisserie au British Museum comme ses compétences l'y autorisaient. Dans ce cas, cette décision était susceptible de recours, et le moyen fondé sur l'erreur manifeste d'une telle décision au regard de l'état de conservation d'une telle oeuvre aurait été examiné.
En l'espèce, la décision est remontée jusqu'au Président de la République qui en a, évidemment, fait un élément de sa communication personnelle. Le résultat est que le ministre de la Culture n'était plus compétent que pour exécuter un acte du gouvernement qui échappait à son appréciation comme au contrôle du juge. Les prescriptions du code du patrimoine destinées à assurer la bonne conservation des oeuvres n'étaient plus pertinentes dans l'affaire.
La décision du 5 juin 2026 conduit ainsi à considérer l'acte de gouvernement comme un instrument du pouvoir d'évocation du Président de la République. Comme Louis XIV avant lui, Emmanuel Macron fait remonter les affaires qui l'intéressent au niveau diplomatique. Une promesse faite au château de Windsor devient un acte de gouvernement qui précisément contourne la compétence gouvernementale et interdit toute contestation.
On assiste ainsi au développement d'une diplomatie présidentielle dans laquelle le Président définit lui-même l'étendue de ses compétences. Il présidentialise les actes administratifs pour les soustraire au contrôle du juge et le Conseil d'État valide cette pratique sans se poser trop de questions. La compétence de l'auteur de l'acte, moyen d'ordre public par excellence, n'est pas évoquée, pas plus que l'absence de contreseing pourtant imposé par l'article 19 de la Constitution. Il valide ainsi un pouvoir présidentielle plus personnel qu'institutionnel. Quant à l'état de la tapisserie, il n'a pas besoin d'être examiné puisque le contrôle de fond n'a pas lieu. […]
#LLC
Le 04 juin 2026, la formation restreinte, l’organe de sanction de la CNIL, s’est penchée sur Voyageurs du Monde. PURR a assisté à la séance.
La Rapporteur de la CNIL a soulevé les griefs suivants :
- Présence d’un champ de texte libre non-adéquat et excessif. Malgré les recommandations 2019 de la CNIL, Voyageurs du Monde ne mettait en œuvre aucune procédure de modération ou de contrôle. […]
- Absence d’information et de recueil du consentement à la collecte de données sensibles (maladies, convictions religieuses, orientation sexuelle, …) dans le formulaire voyageur. […]
- Conservation insuffisamment sécurisée des mots de passe par chiffrement 3DES. Pas à l’état de l’art ANSSI et CNIL. […]
- Prospection commerciale après une information discutable et sans possibilité d’opposition. […]
- Pour les voyages individuels, la durée de conservation annoncée à l’époque était de 15 ans et il n’existait en réalité aucune procédure de suppression. Pour les voyages en groupe, l’entreprise conservait des documents d’identité plus d’un mois après le retour. Dans les deux cas, les durées choisies, 10 ans pour un prospect, 15 ans pour un client, sont excessives. […]
[…]
En conséquence, la Rapporteure a proposé que les mesures correctrices soient une amende de 1,8 million d’euros (1,5 M€ pour les manquements au RGPD, 300 k€ pour la prospection) et une injonction à se mettre en conformité avec une durée de conservation de 5 ans en ce qui concerne les données clients. […]
Toujours les mêmes manquements, encore et encore. -_-
Une même URL excepté le protocole, deux fichiers au contenu différent.
Deux fichiers, nommés fichier et fichier.https.
Dans le VirtualHost https : Alias <URL> </chemin/vers/fichier.https>.
La directive étant absente du virtualhost http, c'est bien fichier, et non fichier.https, qui sera servi en HTTP.
Cela fait longtemps que je veux me débarrasser de Wordpress pour mon blog. Il y a dix ans, j'avais déjà étudié son remplacement par un générateur de sites statiques.
Je n'ai pas utilisé mon blog depuis plus de dix ans. Donc je peux le transformer en archive publique sous forme de site statique.
Contrainte : conserver le contenu et les URL.
Pour ce genre de manip', j'utilise habituellement le logiciel httrack.
Première étape : effectuer un inventaire. Objectif : voir le travail à réaliser, identifier les éventuelles embûches, etc.
httrack -z --spider http://www.guiguishow.info/.
-z Augmente la verbosité du journal (hts-log.txt), notamment les URL traitées.
Assez vite, en lisant le log, il s'avère qu'il faut exclure wp-content (j'ai déjà ce dossier sous forme statique, donc pas la peine de le traiter), loyaltyactinoid (ma contribution au projet Honeypot qui devient caduque avec un site statique), wp-json et xmlrpc (qui sont des API de WP sur lesquelles butent httrack), « /?p=XXXXX » (qui est un format d'URL dont je ne veux pas), et « /feed/ » pour la raison que je vais expliquer après.
Ça donne : httrack -z --spider http://www.guiguishow.info/ -*/wp-content/* -*loyaltyactinoid* -*wp-json* -*xmlrpc* -*?p=* -*/feed/*.
Pour une raison que j'ignore, httrack refuse d'archiver les flux RSS et le sitemap : « Error: "OK" (-1) » alors que HTTP 200 dans le log du serveur web… J'ai essayé le paramètre « -%a », sans succès (et c'est logique, il ne fait que forcer le contenu de l'entête « Accept » de la requête).
Deuxième étape : archiver.
httrack -z -%F ' ' http://www.guiguishow.info/ -*/wp-content/* -*loyaltyactinoid* -*wp-json* -*xmlrpc* -*?p=* -*/feed/*.
L'option « -%F » permet de virer la pub que httrack insère à la fin de chaque page sauvegardée.
Troisième étape : adaptation et cosmétique. Je me suis inspiré de cet article.
Dans les pages archivées, on trouve plein de choses qui ne vont pas :
DirectoryIndex d'Apache httpd ;On nettoie tout ça (j'ai séparé les commandes sed avec regex simple de celles avec regex avancée) :
find . -name "*.html" -type f | xargs sed -i -e '/Added by HTTrack/d' \
-e '/loyaltyactinoid/d' \
-e '/xmlrpc.php/d' \
-e '/wp-json\//d' \
-e '/\/wp-includes\//d' \
-e "/rel='shortlink'/d" \
-e '/Flux des commentaires/d' \
-e 's#"http://www.guiguishow.info/#"/#g' \
-e 's#index.html##g' \
-e 's#<h1>.*</h1>#<h1><a href="/">GuiGui\&\#039;s show</a></h1>#' \
-e 's#<li ><a href.*ACCUEIL<!--end--></a></li>#<li><a href="/">ACCUEIL</a></li>#' \
-e 's#<li class="page_item page-item-2665"><a href=.*/mentions-legales/">Mentions légales</a></li>#<li class="page_item page-item-2665"><a href="/mentions-legales/">Mentions légales</a></li>#' \
-e 's#<li class="page_item page-item-3582"><a href=".*">TLS</a></li>#<li class="page_item page-item-3582"><a href="/tls/">TLS</a></li>#'
et
find . -name "*.html" -type f | xargs sed -i -r -e 's#<a href="(../)+categorie/#<a href="/categorie/#g' \
-e 's#<a href="(../)+tag/#<a href="/tag/#g' \
-e 's#<a href="(../)+(201[0-9])/#<a href="/\2/#g' \
-e 's#Toute copie de ce site doit mentionner <a href="(../)+">#Toute copie de ce site doit mentionner www.guiguishow.info.#' \
-e 's#http://www.guiguishow.info</a>. Publié#Publié#' \
-e 's#<a href="(../)+administration-reseau/#<a href="/categorie/administration-reseau/#' \
-e 's#<a href="(../)+administration-systeme/#<a href="/categorie/administration-systeme/#' \
-e 's#<a href="(../)+bgp-rpki-roa/#<a href="/categorie/bgp-rpki-roa/#' \
-e 's#<a href="(../)+blog/#<a href="/categorie/blog/#' \
-e 's#<a href="(../)+cinematv/#<a href="/categorie/cinematv/#' \
-e 's#<a href="(../)+assembleur-8086/#<a href="/categorie/developpement/assembleur-8086/#g' \
-e 's#<a href="(../)+developpement/#<a href="/categorie/developpement/#' \
-e 's#<a href="(../)+divers/#<a href="/categorie/divers/#' \
-e 's#<a href="(../)+dns-dnssec/#<a href="/categorie/dns-dnssec/#' \
-e 's#<a href="(../)+openwrt/#<a href="/categorie/hardware/embarque/openwrt#g'`
-e 's#<a href="(../)+embarque/#<a href="/categorie/hardware/embarque/#g' \
-e 's#<a href="(../)+hardware/#<a href="/categorie/hardware/#g' \
-e 's#<a href="(../)+humeur/#<a href="/categorie/humeur/#' \
-e 's#<a href="(../)+jeux-video/#<a href="/categorie/jeux-video/#' \
-e 's#<a href="(../)+logiciels/#<a href="/categorie/logiciels/#' \
-e 's#<a href="(../)+openwrt/#<a href="/categorie/openwrt/#' \
-e 's#<a href="(../)+securite/#<a href="/categorie/securite/#'
Je sais qu'il reste nombre de liens relatifs, notamment les numéros de page, les numéros de jours/mois dans le calendrier, etc. Mais cela reste difficile à substituer automatiquement. Les numéros de pages pourraient peut-être l'être en prenant le contexte, mais le reste… Me prendre trop la tête sur ça n'a pas grand intérêt : les anciennes URLs fonctionnent, peu importe que j'en utilise des nouvelles, relatives, sur mon site web.
Évidemment, ces substitutions sont spécifiques à mon thème et à mes besoins, mais ça peut inspirer.
Pour me simplifier la vie (= éviter le recours à sed), j'ai essayé les options de httrack, notamment « -K », mais ça n'a pas produit le résultat attendu. Le paramètre « -N » influe sur l'arborescence qui sera créée par httrack, mais celle par défaut me convient, ce n'est pas le sujet.
Quatrième étape : sitemap et flux RSS.
Pour le sitemap, wget sur les différentes URL (sitemap.xml pointe vers post-sitemap.xml, etc.).
Pour les RSS, wget. Les renommer feed.xml. Les positionner chacun dans un dossier « feed ». Dans la conf' Apache httpd :
DirectoryIndex index.html feed.xml
<IfModule mod_headers.c>
<FilesMatch "feed.xml$">
Header always set Content-Type "application/rss+xml; charset=utf-8"
</FilesMatch>
</IfModule>
Cinquième étape : nettoyer wp-content.
Supprimer le dossier « languages ».
Dans « themes », supprimer tous les thèmes non-utilisés. Dans le thème utilisé, conserver uniquement les images et les feuilles de style.
Dans « plugins », supprimer tous les plugins inutiles pour l'affichage des pages. Pour ceux restants, conserver uniquement les images et le CSS.
Sixième étape : nettoyer la conf' du serveur web.
Virer tout ce qui est spécifique à Wordpress (réécriture d'URL, permissions, etc.).
Dernière étape : tester les liens.
Même commande qu'à la première étape : httrack -z --spider http://www.guiguishow.info/ -*/wp-content/* -*/feed/*.
On doit obtenir aucune erreur HTTP 404.
Excellente vidéo de Scilabus sur les expériences spatiales ou en milieux analogues (station antarctique, sous-marins, alitement ‒ lit incliné à -6 degrés ‒, immersion sèche ‒ caisson d'eau avec isolement entre l'eau et un sujet ‒) : choix des expériences par les agences spatiales et par les astronautes (volontariat, avec les scientifiques qui pitchent), l'emploi du temps contraint d'un astronaute, la difficulté de préparer techniquement une expérience car un vol 0G ne met pas en exergue tous les problèmes (ex. : dépannage d'un casque VR entre l'ISS et la terre), coordination visio-manuelle en impesanteur, etc.
Par un arrêt du 28 mai 2026, la chambre sociale de la Cour de cassation considère qu'une salariée ou un salarié peut être victime d'un harcèlement d'ambiance. Des propos ou comportements répétés, adressés ou adoptées devant plusieurs employés, peuvent être subis par chacun d'entre eux, lorsqu'ils se voient contraints de travailler dans un environnement humiliant et dégradant. […] L’arrêt rendu par la chambre sociale de la Cour de cassation la 28 mai 2026 marque ainsi une évolution significative, mais non une rupture. Il consacre la dimension environnementale du harcèlement sexuel . Il envoie ainsi aux employeurs un message clair. Il ne doit plus se borner à rechercher si une salariée a été personnellement ciblée, mais quel environnement de travail elle a été contrainte de subir. La lutte contre le harcèlement pénètre ainsi au coeur des impératifs de gestion du personnel. C'est une bonne nouvelle pour les victimes qui, de fait, sont moins isolées dans leurs démarches.
[…]
L'article L 1153-1 du code du travail n'exige pas que la victime soit personnellement destinataire de chaque propos sexiste tenu dans son environnement. Le harcèlement sexuel y est défini comme "des propos ou comportements à connotation sexuelle ou sexiste répétés qui soit portent atteinte à sa dignité en raison de leur caractère dégradant ou humiliant, soit créent à son encontre une situation intimidante, hostile ou offensante". Il y a donc deux éléments de définition, d'une part des propos ou comportements répétés à connotation sexuelle, d'autre part une situation dégradante créée à l'encontre de la victime par ces propos.
Jusqu'à la décision du 28 mai 2026, les juges du fond considéraient qu'il n'était pas indispensable que la requérante soit l'unique destinataire des propos ou comportements sexistes. Mais si elle n'était pas l'unique victime, elle devait néanmoins être l'une des personnes visées. La Cour d'appel d'Amiens, le 19 septembre 2017, fait application de ce principe au cas d'un salarié qui désignait les femmes de son entourage professionnel avec un vocabulaire diversifié, "pétasses, blondasses, bombasses, femelles, traînées, boudins", ainsi que "d'autres expressions d'un vulgarité peu commune". La requérante était une pétasse parmi d'autres, mais elle était destinataire du propos.
La question est évidemment posée de l'adaptation du harcèlement d'ambiance au cas des fonctionnaires. La notion n'est pas, ou pas encore, apparue clairement dans la jurisprudence du Conseil d'État. Une évolution dans ce sens se fait toutefois sentir, avec l'arrêt du 5 février 2026 qui admet la légalité d'une sanction infligée à un cadre du ministère des Affaires étrangères qui avait fait subir agissements et propos sexistes à des jeunes femmes placées sous son autorité. Ces comportements, étalés sur une dizaine d'années sont sanctionnés, notamment au regard de "leur ampleur et de leur récurrence". Le fonctionnaire est sanctionné disciplinairement à la fois pour son comportement sexiste mais aussi pour l'ambiance toxique qu'il a installée. Comme bien souvent, le Conseil d'État est en retrait de la Cour de cassation sur ces questions, mais une évolution semble en cours.
Bien entendu, la question du harcèlement d'ambiance en droit pénal se heurte au principe d'interprétation stricte de la loi pénale. Le délit de harcèlement peut toutefois être caractérisé si des propos tenus dans un groupe sont imposés à chacun de ses membres, même si aucun n'est directement visé. La chambre criminelle en a décidé ainsi dans un arrêt du 12 mars 2025 qui confirme la condamnation d'un maître de conférences poursuivi pour harcèlement sexuel, en raison de propos tenus pendant ses travaux dirigés. Le droit pénal admet ainsi une certaine forme de harcèlement d'ambiance, sans toutefois dissoudre l'infraction dans l'atmosphère générale. Il doit donc identifier les propos, leur caractère sexuel ou sexiste, et l'exposition personnelle de chaque victime.
#LLC
Il y a quelques années, j'apprenais, via Aeris, que des paramètres relatifs au chiffrement d'une partition chiffrée Linux (LUKS) sont déterminés à la création, qu'en fonction du contexte (vieille bécane, par ex.), ils peuvent être insuffisants, et qu'ils ne sont pas magiquement à l'épreuve du temps.
Notamment, il y avait un nombre d'itérations (devenu time cost) sur le keyslot (qui n'a rien à voir avec le condensant la clé du volume, « digest » dans luksDump). Depuis la version 1.7.0 de crypsetup, le minimum d'itérations doit représenter 2 secondes. Avec la fonction de dérivation de clé Argon2, il y a également un coût mémoire (memory cost) et un coût CPU (parallel cost). Par défaut : mémoire = 128 Mo ; temps = 0,8 s / 2s ; et parallel cost = nombre de cœurs, plafonné à 4 (sources : 1 et point 10.5).
La section 4 du RFC 9106 présente les paramètres recommandés : « Key derivation for hard-drive encryption, which takes 3 seconds on a 2 GHz CPU using 2 cores -- Argon2id with 4 lanes and 6 GiB of RAM. ». Au point 10.5 de sa FAQ, cryptsetup expose pour quoi il y déroge, notamment sur la quantité de RAM.
Je suis déjà passé à Argon2 (donc au format d'entête LUKS v2) en 2023.
Histoire d'être prévenant et à l'épreuve du temps, j'ai décidé de faire en sorte que le nombre d'itérations occupe environ 5 secondes : cryptsetup luksConvertKey /dev/sdXY --pbkdf argon2id --hash sha512 --iter-time 5000 (le changement se fait à chaud, sans perte de données).
Sur mon ordi à la maison, cela a donné : time cost = 19 ; memory cost = 1 Go ; parallel cost = 4. Cela prend environ 5 secondes pour monter la partition chiffrée.
Pour un disque dur USB utilisé sur cet ordi, cela m'a donné time cost = 17, le reste identique. Sur un autre disque dur USB sur ce même ordi, time cost = 19 (et le reste identique). :D Même remarque concernant le temps pour monter ces conteneurs chiffrés.
Sur ce même ordi, j'ai créé une partition chiffrée sur un disque dur interne SATA branché à un convertisseur USB. Puis je l'ai monté (avec VirttIO) dans une machine virtuelle distante. Time cost = 7, memory = 1G, et je n'ai pas relevé le parallel cost. Mais, sur cette VM, contrairement à l'ordi qui a créé la partition chiffrée, je n'ai qu'un cœur CPU et 1 Go de RAM (à l'époque). --iter-time 5000 m'a fait passer à time cost = 12 et memory = 680 Mo. Je voulais le même coût temporel que sur mon ordi à la maison (19). Je l'ai obtenu avec --iter-time 8000, pour 695 Mo de RAM et 1 cœur CPU. Cela prend environ 8 secondes pour monter la partition.
Sur une autre VM distante, avec 2 cœurs et 2 Go de RAM, --iter-time 5000 a produit un time cost = 4 ; memory = 258 Mo ; parallel = 2. Trouvant cela insuffisant, j'ai obtenu time cost = 20 et memory = 662 Mo avec --iter-time 10000. Conséquence : environ 10 secondes pour monter la partition.
On constate donc que, pour une même durée de dérivation de clé, 5 secs, on a bien des paramètres différents en fonction de la vélocité de la machine : time cost (= itérations) = 17 ou 19 pour 1 Go RAM et 4 cœurs ; time cost = 12 pour 680 Mo de RAM et un cœur, et time cost = 4 pour 258 Mo de RAM et 2 cœurs.
Note : la partition système de mon ordi à la maison utilise sha1 pour le condensat de la clé de volume. Le point 3.4 de la FAQ officielle consigne que cela ne peut pas être changé sans perte de données, mais aussi que cela est sans grande incidence sur la sécurité.
1) Sur un serveur de courriels, désactiver l'authentification sur le port 25. L'activer uniquement sur le port 587 (submission). Cela limite les tentatives d'auth, et donc les messages consignés dans les logs, surtout dans une configuration Postfix + salsauthd.
2) Si t'as des services privés et une IP fixe (une vraie, pas une IP stable mais qui peut changer) : bloquer tous les ports possibles (SSH, submission, imap, xmpp-client, etc.). Si tu n'as pas d'IP fixe, port knocking. Cela s'intègre bien à SSH et s'automatise dans ssh_config. (Et, forcément, fail2ban ou équivalent pour les services ouverts au public, même si ça rajoute des logs.)
Il y a quelques années, j'ai constaté la réception de courriels depuis l'extérieur par des comptes systèmes (man, www-data, mysql, etc.) de mon serveur emails.
Néanmoins, c'était qu'un seul serveur sur les deux. Un test m'avait confirmé cela.
Cette divergence s'explique par le fait que, d'un côté, le MDA est Postfix, alors que, de l'autre côté, c'est Dovecot.
Or, le message d'erreur de ce dernier est limpide : « dovecot: lda(8499): Fatal: Mail access for users with UID 33 not permitted (see first_valid_uid in config file, uid from userdb lookup). »
Quant à lui, Postfix ne vérifie même pas, par défaut, qu'un répertoire personnel existe (paramètre « require_home_directory »). Cela se comprend pour quelques usages (notamment quand le maildir n'est pas dans le home).
Postfix ne propose aucune option équivalente à celle de Dovecot (sauf pour les boîtes aux lettres virtuelles, c'est-à-dire non-associées à un utilisateur du système, avec « virtual_minimum_uid »).
On peut utiliser « local_recipient_maps » avec un tableau associatif (map) qui contient uniquement les utilisateurs autorisés à recevoir des courriels. Mais flemme.
Au final, j'avais utilisé « header_checks » (dont j'ai déjà parlé ici et là pour d'autres cas d'usage). Jeter silencieusement (= action « DISCARD ») tous les messages dont l'entête « From » contient l'adresse d'un compte système (ce qui impose de tous les lister) ou qui ne contient pas les utilisateurs autorisés à recevoir.
Depuis, j'ai remplacé ce Postfix par OpenSMTPD dont le MDA Maildir ne délivre pas un courriel quand le Maildir n'existe pas.
L'arrêt rendu par la chambre criminelle de la Cour de cassation le 27 mai 2026 rappelle qu'un prévenu peut contester dans les médias les accusations dont il est objet. De tels propos ne constituent pas, en tant que tels, une diffamation publique, définie par l'article 29 de la loi du 29 juillet 1881.
[…]
La plaignante a alors engagé une autre instance portant cette fois sur des propos tenus par Roman Polanski dans Paris Match en décembre 2019. Interrogé sur les accusations de violences sexuelles dont il était l'objet, il avait alors déclaré : « La première qualité d’un bon menteur, c’est une excellente mémoire. On mentionne toujours Charlotte Lewis dans la liste de mes accusatrices sans jamais relever ses contradictions » Il avait ajouté que ces accusations étaient "d'odieux mensonges". Charlotte Lewis avait alors engagé une action en diffamation.
[…]
La diffamation, pour être reconnue comme telle, doit ainsi se présenter comme une articulation de faits dont l'exactitude peut être discutée devant le juge. […]
Cette analyse n'est guère différente dans le contentieux de la Cour européenne des droits de l'homme, qui se place sur le fondement de l'article 10 de la Convention européenne (CEDH). Sa jurisprudence distingue très clairement les faits, susceptibles de preuve, et les jugements de valeur dont la vérité ne peut être démontrée. […]
En l'espèce, la Cour de cassation applique cette jurisprudence. Peu importe l'appréciation que l'on porte sur les propos de Roman Polanski. Ils sont peut-être injurieux dans le langage commun, rudes ou détestables, mais ils relèvent d'une appréciation subjective, pas d'une imputation probatoire reposant sur des faits.
Certains objecteront sans doute que l'accusation portée à l'encontre de Charlotte Lewis lui impute le fait d'avoir menti. Mais la Cour retient toujours une approche contextuelle de l'échange. Roman Polanski est dans la situation d'un homme accusé de viol, contestant la véracité de cette accusation et la cohérence du récit de son accusatrice. Il exprime sa subjectivité, et ne cherche plus à prouver son caractère mensonger, cette démarche ayant été menée à son terme lors du procès pénal.
[…]
Lorsqu’un propos consiste à traiter quelqu’un de menteur, sans imputer un épisode mensonger déterminé, l’injure publique peut apparaître plus adaptée et on peut penser que Charlotte Lewis aurait eu intérêt à se placer sur ce fondement. Mais l'injure sanctionne une expression excessive, elle ne répare pas le préjudice lié à l'honneur de la personne. Elle a donc préféré la voie de droit la plus difficile, qui ne pouvait finalement pas la conduire au succès. […]
#LLC
J'ai entendu des militants, qui procèdent par des recours en justice contre des décisions de l'État (au sens large), se plaindre des pics d'activité estival et hivernal des juridictions administratives, notamment du Conseil d'État. Ces rushs témoigneraient d'une piètre qualité des décisions rendues. J'ai également entendu des avocats évoquer l'existence de ces pics. Certains de mes recours ont été traités au cours d'une telle ruée.
Il y a deux points à vérifier dans cette assertion : 1) l'existence de pics d'activité ; 2) leur lien avec des décisions médiocres (pas défavorables aux militants, mais médiocres). Ce deuxième point est difficilement démontrable, donc je vais me concentrer sur le premier.
Même si, à mon sens, l'existence de pics d'activité ne prouverait rien. Dans mes boulots salariés d'informaticien, que ce soit dans le privé ou le public, le milieu et la fin d'année sont utilisés comme des marqueurs temporels, ça serait bien de terminer tels travaux d'ici là. Cela se combine avec une baisse des sollicitations externes, ce qui permet d'avancer plus vite ce qu'on peine à réaliser le reste de l'année. Ça ne dit rien de la qualité, bien au contraire puisqu'on avait du temps.
Il pourrait en être de même des juridictions administratives : moins de recours, donc moins de travail immédiat (référés, tri par ordonnance, etc.), notamment pour les greffes, et moins d'interactions avec les administrations au ralenti, donc plus de temps pour préparer et communiquer les décisions de justice. D'ailleurs, au pénal a minima, il existe un service allégé 12 semaines par an qui « permet aux magistrats de rédiger leurs arrêts et jugements suite aux audiences surchargés du mois de juin ». C'est donc plus de l'organisation que de l'abattage des parties.
Plusieurs décisions fouillées, et/ou qui vont dans le bon sens, ont été rendues en fin d'année : CE 473506 du 31/12/2024 sur les drones policiers, CE 489990 du 21/12/2023 sur Briefcam, CE 447518 / 447515 / 447513 du 24/12/2021 sur les fichiers de police EASP, PASP, et GIPASP. De même, dans mes décisions CE 490189 et autres du 31/07/2025, surtout dans les conclusions (non-publiées), le CE a précisé le niveau information que doit délivrer la CNIL lors du traitement d'une réclamation.
Bref, l'hypothèse complète (médiocrité car rush) est compromise. On va voir que la minimaliste (existence de rushs) est cabossée.
Toutes les décisions, et encore moins les ordonnances, ne sont pas dans le moteur de recherche du CE.
On peut utiliser le moteur de recherche de l'opendata de la justice administrative, mais il ne remonte pas avant septembre 2021.
C'est pour quoi je travaille sur la période 2022-2025.
| 2025 | Décisions | Pourcentage sur total décisions | Ordonnances | Pourcentage sur total ordonnances | Total (décisions + ordonnances) | Pourcentage du total |
|---|---|---|---|---|---|---|
| janvier | 128 | 2,4 | 119 | 5,4 | 247 | 3,3 |
| février | 402 | 7,6 | 115 | 5,2 | 517 | 6,9 |
| mars | 490 | 9,2 | 162 | 7,4 | 652 | 8,7 |
| avril | 367 | 6,9 | 275 | 12,5 | 642 | 8,6 |
| mai | 468 | 8,8 | 233 | 10,6 | 701 | 9,3 |
| juin | 460 | 8,7 | 142 | 6,4 | 602 | 8,0 |
| juillet | 791 | 14,9 | 155 | 7,0 | 946 | 12,6 |
| août | 140 | 2,6 | 216 | 9,8 | 356 | 4,7 |
| septembre | 128 | 2,4 | 266 | 12,1 | 394 | 5,2 |
| octobre | 487 | 9,2 | 173 | 7,9 | 660 | 8,8 |
| novembre | 526 | 9,9 | 83 | 3,8 | 609 | 8,1 |
| décembre | 917 | 17,3 | 263 | 11,9 | 1180 | 15,7 |
| TOTAL | 5304 | 100 | 2202 | 100 | 7506 | 100 |
| 2024 | Décisions | Pourcentage sur total décisions | Ordonnances | Pourcentage sur total ordonnances | Total (décisions + ordonnances) | Pourcentage du total |
|---|---|---|---|---|---|---|
| janvier | 198 | 4,0 | 149 | 6,2 | 347 | 4,7 |
| février | 422 | 8,5 | 148 | 6,2 | 570 | 7,7 |
| mars | 541 | 10,8 | 407 | 17,0 | 948 | 12,8 |
| avril | 457 | 9,2 | 130 | 5,4 | 587 | 7,9 |
| mai | 349 | 7,0 | 158 | 6,6 | 507 | 6,9 |
| juin | 454 | 9,1 | 178 | 7,4 | 632 | 8,6 |
| juillet | 703 | 14,1 | 259 | 10,8 | 962 | 13,0 |
| août | 60 | 1,2 | 224 | 9,4 | 284 | 3,8 |
| septembre | 101 | 2,0 | 111 | 4,6 | 212 | 2,9 |
| octobre | 475 | 9,5 | 139 | 5,8 | 614 | 8,3 |
| novembre | 449 | 9,0 | 161 | 6,7 | 610 | 8,3 |
| décembre | 785 | 15,7 | 331 | 13,8 | 1116 | 15,1 |
| TOTAL | 4994 | 100 | 2395 | 100 | 7389 | 100 |
| 2023 | Décisions | Pourcentage sur total décisions | Ordonnances | Pourcentage sur total ordonnances | Total (décisions + ordonnances) | Pourcentage du total |
|---|---|---|---|---|---|---|
| janvier | 179 | 3,7 | 280 | 10,4 | 459 | 6,1 |
| février | 351 | 7,2 | 272 | 10,1 | 623 | 8,2 |
| mars | 532 | 10,9 | 171 | 6,3 | 703 | 9,3 |
| avril | 480 | 9,9 | 157 | 5,8 | 637 | 8,4 |
| mai | 335 | 6,9 | 341 | 12,6 | 676 | 8,9 |
| juin | 585 | 12,0 | 180 | 6,7 | 765 | 10,1 |
| juillet | 532 | 10,9 | 281 | 10,4 | 813 | 10,7 |
| août | 143 | 2,9 | 158 | 5,8 | 301 | 4,0 |
| septembre | 116 | 2,4 | 137 | 5,1 | 253 | 3,3 |
| octobre | 557 | 11,4 | 395 | 14,6 | 952 | 12,6 |
| novembre | 366 | 7,5 | 171 | 6,3 | 537 | 7,1 |
| décembre | 697 | 14,3 | 158 | 5,8 | 855 | 11,3 |
| TOTAL | 4873 | 100 | 2701 | 100 | 7574 | 100 |
| 2022 | Décisions | Pourcentage sur total décisions | Ordonnances | Pourcentage sur total ordonnances | Total (décisions + ordonnances) | Pourcentage du total |
|---|---|---|---|---|---|---|
| janvier | 89 | 1,7 | 162 | 4,8 | 251 | 2,9 |
| février | 577 | 11,2 | 195 | 5,8 | 772 | 9,0 |
| mars | 435 | 8,4 | 406 | 12,0 | 841 | 9,8 |
| avril | 595 | 11,5 | 319 | 9,4 | 914 | 10,7 |
| mai | 374 | 7,2 | 295 | 8,7 | 669 | 7,8 |
| juin | 485 | 9,4 | 270 | 8,0 | 755 | 8,8 |
| juillet | 635 | 12,3 | 319 | 9,4 | 954 | 11,2 |
| août | 107 | 2,1 | 275 | 8,1 | 382 | 4,5 |
| septembre | 243 | 4,7 | 274 | 8,1 | 517 | 6,1 |
| octobre | 508 | 9,8 | 372 | 11,0 | 880 | 10,3 |
| novembre | 417 | 8,1 | 277 | 8,2 | 694 | 8,1 |
| décembre | 701 | 13,6 | 212 | 6,3 | 913 | 10,7 |
| TOTAL | 5166 | 100 | 3376 | 100 | 8542 | 100 |
Pour info :
Collecter les données. Pour les décisions : https://opendata.justice-administrative.fr/recherche/api/Date_Checkbox/openData/Date_Lecture/D%C3%A9cision/DATE_DÉBUT/DATE_FIN/null/200. Pour les ordonnances : https://opendata.justice-administrative.fr/recherche/api/Date_Checkbox/openData/Date_Lecture/Ordonnance/DATE_DÉBUT/DATE_FIN/null/200 ;
Du coup, ça s'automatise bien avec bash (l'outil exige une date de fin valide, on ne peut pas considérer que tous les mois ont 31 jours) :
for dateFin in 2025-01-31 2025-02-28 2025-03-31 2025-04-30 2025-05-31 2025-06-30 2025-07-31 2025-08-31 2025-09-30 2025-10-31 2025-11-30 2025-12-31
do
curl -s https://opendata.justice-administrative.fr/recherche/api/Date_Checkbox/openData/Date_Lecture/D%C3%A9cision/2025-${dateFin:5:2}-01/$dateFin/null/200 | jq .decisions.body.hits.total.value
done
pandoc : pandoc -f csv -t markdown_phpextra stats_CE.csv -o stats_CE.md. Pandoc ne prend pas en charge le format ods (tableur Calc) ;Afin d'y voir plus clair, ajoutons du formatage conditionnel.
La couleur est par couple { colonne ; année }. Autrement dit, il n'y a pas de cohérence entre deux colonnes d'une même année, ni entre deux années. La graduation dépend des valeurs d'une colonne pour une année.

Pour info, LibreOffice Calc permet l'exportation direct en formats image, dont png.
On constate que les pics d'activité n'ont pas lieu aux mêmes moments entre les décisions et les ordonnances. Logique, ce n'est pas la même charge de travail, ni la même variabilité liée à l'activité des justiciables.
Même sur les décisions, on constate que les pics estival et hivernal n'étaient pas autant marqués en 2022 et 2023. Pour conclure, il nous faudrait les chiffres pour les années antérieures.
Je ne retiens pas l'année 2022 car l'open data des cours administratives d'appel commence en mars 2022 et celui des tribunaux en juin 2022.
| 2025 | Décisions | Pourcentage sur total décisions | Ordonnances | Pourcentage sur total ordonnances | Total (décisions + ordonnances) | Pourcentage du total |
|---|---|---|---|---|---|---|
| janvier | 12266 | 7,6 | 9497 | 8,2 | 21763 | 7,8 |
| février | 13274 | 8,2 | 8748 | 7,5 | 22022 | 7,9 |
| mars | 14318 | 8,9 | 10019 | 8,6 | 24337 | 8,8 |
| avril | 14367 | 8,9 | 9138 | 7,8 | 23505 | 8,5 |
| mai | 12860 | 8,0 | 8352 | 7,2 | 21212 | 7,6 |
| juin | 16000 | 9,9 | 9093 | 7,8 | 25093 | 9,0 |
| juillet | 15686 | 9,7 | 9142 | 7,9 | 24828 | 8,9 |
| août | 4858 | 3,0 | 7941 | 6,8 | 12799 | 4,6 |
| septembre | 11214 | 6,9 | 11541 | 9,9 | 22755 | 8,2 |
| octobre | 15060 | 9,3 | 11813 | 10,1 | 26873 | 9,7 |
| novembre | 13971 | 8,7 | 10173 | 8,7 | 24144 | 8,7 |
| décembre | 17637 | 10,9 | 10952 | 9,4 | 28589 | 10,3 |
| TOTAL | 161511 | 100 | 116409 | 100 | 277920 | 100 |
| 2024 | Décisions | Pourcentage sur total décisions | Ordonnances | Pourcentage sur total ordonnances | Total (décisions + ordonnances) | Pourcentage du total |
|---|---|---|---|---|---|---|
| janvier | 10603 | 7,0 | 7370 | 7,6 | 17973 | 7,2 |
| février | 13674 | 9,0 | 7719 | 7,9 | 21393 | 8,6 |
| mars | 12757 | 8,4 | 8348 | 8,6 | 21105 | 8,5 |
| avril | 13799 | 9,1 | 7995 | 8,2 | 21794 | 8,7 |
| mai | 13000 | 8,6 | 7725 | 7,9 | 20725 | 8,3 |
| juin | 14313 | 9,4 | 7610 | 7,8 | 21923 | 8,8 |
| juillet | 15998 | 10,5 | 8950 | 9,2 | 24948 | 10,0 |
| août | 5181 | 3,4 | 6762 | 6,9 | 11943 | 4,8 |
| septembre | 10169 | 6,7 | 9622 | 9,9 | 19791 | 7,9 |
| octobre | 15057 | 9,9 | 10161 | 10,4 | 25218 | 10,1 |
| novembre | 12885 | 8,5 | 7691 | 7,9 | 20576 | 8,3 |
| décembre | 14290 | 9,4 | 7642 | 7,8 | 21932 | 8,8 |
| TOTAL | 151726 | 100 | 97595 | 100 | 249321 | 100 |
| 2023 | Décisions | Pourcentage sur total décisions | Ordonnances | Pourcentage sur total ordonnances | Total (décisions + ordonnances) | Pourcentage du total |
|---|---|---|---|---|---|---|
| janvier | 11046 | 7,3 | 7937 | 8,8 | 18983 | 7,9 |
| février | 12655 | 8,4 | 7348 | 8,2 | 20003 | 8,3 |
| mars | 15214 | 10,1 | 8244 | 9,2 | 23458 | 9,7 |
| avril | 12944 | 8,6 | 7247 | 8,1 | 20191 | 8,4 |
| mai | 13387 | 8,8 | 7285 | 8,1 | 20672 | 8,6 |
| juin | 17043 | 11,3 | 7682 | 8,5 | 24725 | 10,2 |
| juillet | 14103 | 9,3 | 7096 | 7,9 | 21199 | 8,8 |
| août | 5170 | 3,4 | 5641 | 6,3 | 10811 | 4,5 |
| septembre | 9442 | 6,2 | 8330 | 9,3 | 17772 | 7,4 |
| octobre | 13995 | 9,2 | 8636 | 9,6 | 22631 | 9,4 |
| novembre | 12822 | 8,5 | 7782 | 8,6 | 20604 | 8,5 |
| décembre | 13518 | 8,9 | 6761 | 7,5 | 20279 | 8,4 |
| TOTAL | 151339 | 100 | 89989 | 100 | 241328 | 100 |

Mêmes constats que pour le CE : le rythme des ordonnances est différent de celui des décisions, et, même pour les décisions, les pics ne sont pas forcément en juillet et décembre.
Même si les conversations auxquelles je me réfère au début de cet article portaient sur les juridictions administratives, et surtout le CE, la comparaison m'intéresse.
J'ai pris la même période que pour le CE.
| 2025 | Décisions | Pourcentage du total |
|---|---|---|
| janvier | 1581 | 9,7 |
| février | 1272 | 7,8 |
| mars | 1716 | 10,5 |
| avril | 1238 | 7,6 |
| mai | 1492 | 9,2 |
| juin | 1702 | 10,5 |
| juillet | 769 | 4,7 |
| août | 72 | 0,4 |
| septembre | 1574 | 9,7 |
| octobre | 1624 | 10,0 |
| novembre | 1864 | 11,5 |
| décembre | 1370 | 8,4 |
| TOTAL | 16274 | 100 |
| 2024 | Décisions | Pourcentage du total |
|---|---|---|
| janvier | 1482 | 9,1 |
| février | 1509 | 9,2 |
| mars | 1609 | 9,8 |
| avril | 887 | 5,4 |
| mai | 1794 | 11,0 |
| juin | 1660 | 10,2 |
| juillet | 967 | 5,9 |
| août | 66 | 0,4 |
| septembre | 1816 | 11,1 |
| octobre | 1726 | 10,6 |
| novembre | 1677 | 10,3 |
| décembre | 1155 | 7,1 |
| TOTAL | 16348 | 100 |
| 2023 | Décisions | Pourcentage du total |
|---|---|---|
| janvier | 1727 | 10,0 |
| février | 1332 | 7,7 |
| mars | 2063 | 12,0 |
| avril | 1464 | 8,5 |
| mai | 1305 | 7,6 |
| juin | 2202 | 12,8 |
| juillet | 769 | 4,5 |
| août | 126 | 0,7 |
| septembre | 1669 | 9,7 |
| octobre | 1616 | 9,4 |
| novembre | 1748 | 10,1 |
| décembre | 1215 | 7,0 |
| TOTAL | 17236 | 100 |
| 2022 | Décisions | Pourcentage du total |
|---|---|---|
| janvier | 1258 | 7,8 |
| février | 1086 | 6,7 |
| mars | 1446 | 8,9 |
| avril | 1299 | 8,0 |
| mai | 1331 | 8,2 |
| juin | 2294 | 14,1 |
| juillet | 704 | 4,3 |
| août | 115 | 0,7 |
| septembre | 2211 | 13,6 |
| octobre | 1584 | 9,8 |
| novembre | 1686 | 10,4 |
| décembre | 1216 | 7,5 |
| TOTAL | 16230 | 100 |
Pour info :
xmllint et xmlstarlet, que j'ai déjà présentés ici ne tolèrent pas le HTML mal formé, dont celui de la Cass ;On peut faire vite-fait mal-fait avec grep et une regex look-behind (dont j'ai déjà parlé là : grep -Po '(?<=researchNbResults">)[0-9]+' ;
Pour passer la protection anti-robots de la Cass, il faut avoir des entêtes HTTP, dont des cookies, corrects. Le plus pratique et rapide est d'utiliser « Copier la valeur » -> « Copier comme cURL » de l'onglet réseau des outils de développement web de Firefox. On y chaîne la commande grep du point précédent, et on met ça dans une boucle. Là encore, il faut gérer la durée différente des mois. Ça donne ça :
for dateFin in 2025-01-31 2025-02-28 2025-03-31 2025-04-30 2025-05-31 2025-06-30 2025-07-31 2025-08-31 2025-09-30 2025-10-31 2025-11-30 2025-12-31
do
curl -s "https://www.courdecassation.fr/recherche-judilibre?search_api_fulltext=&date_du=2025-${dateFin:5:2}-01&date_au=$dateFin&judilibre_juridiction=all&op=Rechercher+sur+judilibre" [TOUS_LES_ENTÊTES_ICI] | grep -Po '(?<=researchNbResults">)[0-9]+'
done
pup (empaqueté dans Debian stable, site officiel) : pup 'span[id="researchNbResults"] text{}' (ou pup 'span#researchNbResults text{}'). 
Les pics d'activité ne sont pas réguliers et ne tombent même pas en juillet et décembre. :D
Je pense que cela s'explique en ce que la Cass n'est saisie que de pourvois de dernier ressort, alors que le CE est aussi saisi de recours en premier ressort (contre des décrets ou arrêtés ministériels, des décisions d'autorités administratives indépendantes, etc.). Du coup, la Cass doit être moins sensible à la variation de l'activité des justiciables.
Attention, en fonction de la matière, les décisions des cours d'appel ne sont pas encore publiées en open data, et celles des tribunaux ne le sont pas (source).
Je ne prends pas l'année 2022 car l'open data des cours d'appel commence en avril.
| 2025 | Décisions | Pourcentage du total |
|---|---|---|
| janvier | 51623 | 8,7 |
| février | 46448 | 7,8 |
| mars | 59408 | 10,0 |
| avril | 49984 | 8,4 |
| mai | 57031 | 9,6 |
| juin | 59089 | 10,0 |
| juillet | 52356 | 8,8 |
| août | 19821 | 3,3 |
| septembre | 54992 | 9,3 |
| octobre | 48377 | 8,2 |
| novembre | 47136 | 8,0 |
| décembre | 45975 | 7,8 |
| TOTAL | 592240 | 100 |
| 2024 | Décisions | Pourcentage du total |
|---|---|---|
| janvier | 22081 | 7,0 |
| février | 22784 | 7,2 |
| mars | 24844 | 7,9 |
| avril | 21105 | 6,7 |
| mai | 28582 | 9,1 |
| juin | 27938 | 8,9 |
| juillet | 20735 | 6,6 |
| août | 9460 | 3,0 |
| septembre | 33003 | 10,5 |
| octobre | 33305 | 10,6 |
| novembre | 37707 | 12,0 |
| décembre | 33026 | 10,5 |
| TOTAL | 314570 | 100 |
| 2023 | Décisions | Pourcentage du total |
|---|---|---|
| janvier | 12949 | 9,3 |
| février | 11437 | 8,2 |
| mars | 15137 | 10,9 |
| avril | 10638 | 7,7 |
| mai | 13106 | 9,5 |
| juin | 14659 | 10,6 |
| juillet | 6847 | 4,9 |
| août | 2783 | 2,0 |
| septembre | 12850 | 9,3 |
| octobre | 10653 | 7,7 |
| novembre | 13828 | 10,0 |
| décembre | 13750 | 9,9 |
| TOTAL | 138637 | 100 |

À nouveau, difficile de parler de pics estival et hivernal…
1 Par un courrier du 11 février 2025, M. B... a demandé au Premier ministre de prendre le décret d'application de l'article L. 622-1 du code général de la fonction publique. Il demande l'annulation pour excès de pouvoir du refus implicite qui lui a été opposé, résultant du silence gardé pendant plus de deux mois sur sa demande.
Sur les conclusions à fin d'annulation :
2 En vertu de l'article 21 de la Constitution, le Premier ministre assure l'exécution des lois et exerce le pouvoir réglementaire, sous réserve de la compétence conférée au Président de la République par son article 13. L'exercice du pouvoir réglementaire comporte non seulement le droit, mais aussi l'obligation de prendre dans un délai raisonnable les mesures qu'implique nécessairement l'application de la loi, hors le cas où le respect des engagements internationaux de la France y ferait obstacle.
3 L'effet utile de l'annulation pour excès de pouvoir du refus du pouvoir réglementaire de prendre les mesures qu'implique nécessairement l'application de la loi réside dans l'obligation, que le juge peut prescrire d'office en vertu des dispositions de l'article L. 911-1 du code de justice administrative, pour le pouvoir réglementaire, de prendre ces mesures. Il s'ensuit que lorsqu'il est saisi de conclusions aux fins d'annulation du refus d'une autorité administrative d'édicter les mesures nécessaires à l'application d'une disposition législative, le juge de l'excès de pouvoir est conduit à apprécier la légalité d'un tel refus au regard des règles applicables et des circonstances prévalant à la date de sa décision.
Dans les conclusions, on apprend que le requérant est « juriste au sein du ministère de la transition écologique et conjoint d’une future maman [qui s'est] vu refuser une telle autorisation spéciale pour accompagner son épouse à un examen médical obligatoire dans le cadre de sa grossesse »
Trouver la paix intérieure, c'est facile.
Rigolo, l'interception / l'écoute / la recopie de socket unix avec socat en mitm. :D
La loi du 26 mai 2026 visant à garantir l'égal de tous à l'accompagnement et aux soins palliatifs décourage le commentaire juridique. D'un côté, elle semble affirmer une ambition forte, et elle a ainsi fait l'objet d'une communication qui la présente comme un grand texte, un progrès considérable dans le domaine du droit de mourir dans la dignité. De l'autre coté, sa lecture montre que l'essentiel de son contenu existait déjà dans le droit positif.
[…]
[…] Le droit positif connaît donc déjà le triptyque que la loi de 2026 ne remet pas en cause : refus de l’acharnement thérapeutique, soins palliatifs, sédation profonde et continue dans certaines hypothèses. Le droit de bénéficier de soins palliatifs n'est donc pas une innovation.
Le progrès affirmé par les auteurs du texte résiderait-il dans la définition des soins palliatifs ? En effet, leur définition connait une évolution.
[…]
Tout cela est fort bien, et sans doute était-il utile de l'écrire, mais les soins palliatifs, tels qu'ils sont pratiqués aujourd'hui dans les services spécifiquement créés à cette fin, ont intégré depuis longtemps cette définition. L'accompagnement est leur réalité quotidienne, et leur seul problème ne réside pas dans la définition des soins palliatifs mais bien davantage dans leur organisation.
[…]
Contrairement à ce qui est affirmé par ses promoteurs, la loi du 26 mai 2026 ne crée aucun droit nouveau. Elle organise, elle programme, elle définit les conditions de prise en charge des patients, y compris à leur domicile. Elle définit une organisation territoriale pilotée par les Agences régionales de santé (ARS) chargées de coordonner les différents intervenants.
[…]
Toute la partie organisationnelle du texte, c'est-à-dire presque sa totalité si l'on excepte le rappel des droits des patients déjà consacrés, aurait pu être adoptée par voie réglementaire. La question qui est pose alors est la suivante : pourquoi avoir donné tant de visibilité à un texte de pilotage administratif ?
La réponse à cette question réside dans l'articulation de ce texte avec la proposition de loi relative au droit à l'aide à mourir. […] La loi du 26 mai 2026 apparait ainsi comme un instrument d'affirmation d'une politique de soins palliatifs, destinée finalement à cacher le refus de la loi sur l'aide à mourir. Les soins palliatifs sont considérés comme suffisants pour satisfaire la demande sociale.
On n'arrête pas les lois symboliques qui enfoncent des portes ouvertes : constitutionnalisation de l'IVG, pas de sexe forcé durant le mariage, absence de consentement dans la définition du viol, abrogation formelle du Code noir, arrosage autour des lanceurs d'alerte… Faut bien justifier ses fonctions et sa rémunération, hein, et en période électorale, il faut agiter des bidules brillants devant les électeurs…
#LLC
Sur mes infrastructures persos, j'essaye de diversifier les implémentations d'un même service. J'ai Apache httpd et nginx, BIND et nsd, etc. Objectifs : résilience et compétence.
Pour mes courriels, ce n'est pas vrai, j'utilise uniquement postfix (MTA), dovecot (IMAP et, sur un seul de mes domaines, MDA + Sieve), saslauthd (authentification SASL), et OpenDKIM (signature et vérification DKIM). Récemment, sur l'un de mes domaines, je suis passé de saslauthd à dovecot pour l'auth SASL.
J'utilisais policyd-spf-perl pour vérifier SPF, mais, en cas d'erreur dans la résolution de noms, ça rejette des expéditeurs légitimes dès la phase EHLO d'une transactions SMTP, et il n'est pas possible de débrayer cela. Il y a longtemps, sur l'un de mes domaines, j'utilisais procmail comme MDA et langage de filtre, mais la syntaxe est reloue et je n'ai pas besoin d'un filtrage poussé, donc je l'ai viré (postfix est MTA et MDA).
Sur l'un de mes domaines, j'ai décidé de remplacer Postfix par OpenSMTPD, sans d'autres motivations que les objectifs sus-mentionnés.
Pour ce faire, il y a le très complet tuto de Solène. Pour la signature DKIM, on peut utiliser dkimsign plutôt que rspamd. Pour la syntaxe des filtres, notamment pour FCrDNS, c'est ici. Comme pour les autres produits OpenBSD, les autres réponses sont dans le manuel.
Sur un système Debian, les paquets postfix et opensmtpd sont mutuellement exclusifs, mais la suppression de postfix ne purge pas sa configuration.
Pour inspiration, voici mon /etc/smtpd.conf :
# Taille max d'un courriel. Par défaut : 35M.
smtp max-message-size 15M
# Emplacement certifs et clé x509, et ré-activation de l'échange de clé DHE
pki "example.com" cert "/chemin/vers/chaîne/certificats.pem"
pki "example.com" key "/chemin/vers/clé/privée.pem"
pki "example.com" dhe auto
# Emplacement des alias
table aliases file:/etc/aliases
# Définition des filtres
filter "dkimsign" proc-exec "filter-dkimsign -d example.com -s <SELECTEUR> -k /chemin/vers/clé/privée/dkim.pem" user _dkimsign group _dkimsign
filter "check_FCrDNS" phase connect match !fcrdns disconnect "450 No FCrDNS"
filter "check_sender_isFQDN" phase mail-from match !mail-from regex ".+@.+" disconnect "500 FQDN required"
filter "check_sender_notMe" phase mail-from match mail-from regex ".+@example.com$" disconnect "550 Wrong domain"
# Écoute
listen on eth0 port 25 tls pki "example.com" filter { "check_FCrDNS", "check_sender_isFQDN", "check_sender_notMe" }
listen on eth0 port 587 tls-require pki "example.com" auth mask-src filter "dkimsign"
# listen on socket filter "dkimsign"
# actions possibles
action "local" maildir alias <aliases>
# action "local" mda "/usr/lib/dovecot/dovecot-lda -f %{sender} -a %{dest} -d %{user.username}" alias <aliases>
action "smtp" relay
# en entrée
match from any for domain "example.com" action "local"
match from local for local action "local"
# en sortie
match from mail-from spam@example.com auth tartempion for any action "smtp"
#match from local for any action "smtp"
Commentaires :
filter-dkimsign est dans le paquet logiciel opensmtpd-filter-dkimsign ;
Voyons les différences avec Postfix.
Avec Postfix, je passe beaucoup de temps à définir la configuration TLS. OpenSMTPD se repose sur la libtls (libressl) qui prend en charge uniquement les versions 1.2 et 1.3 (source). De même, par défaut, les suites cryptographiques sont uniquement les suites AEAD de TLS 1.3 et 1.2 (sources : 1, 2, 3). Ça s'applique au serveur et au client SMTP. Depuis sa version 3 (empaquetée dans Debian 12), OpenSSL désactive aussi TLS < 1.2 au niveau du système, donc c'est cohérent, même si ça augmente la probabilité de courriels livrés en clair à cause d'exigences TLS trop élevées…
OpenSMTPD ne prend pas en charge le pipeling, donc pas de vulnérabilité SMTP smuggling à contrer. Idem pour l'absence de prise en charge de la commande VRFY, de l'exigence qu'un client se présente avec la commande EHLO (ou HELO) avant toute autre chose, ou le refus de livrer des comptes systèmes sans maildir : c'est natif.
J'utilise OpenDKIM également pour vérifier la signature des courriels entrants. OpenSMTPD délègue aussi cela (mais, a priori, la syntaxe des échanges n'est pas la même, donc un programme pour Postfix ne fonctionne pas directement avec OpenSMTPD). Soit à rspamd, soit à un programme dédié. Pareil pour la vérification SPF. Au final, je ne regarde pas le résultat de ces validations, donc je décide de ne rien mettre en œuvre.
Avec Postfix, j'utilise « header_checks » et « body_checks » pour filtrer sommairement le spam. Cela me suffit. Il n'y a pas d'équivalent avec opensmtpd car il est conçu pour manipuler uniquement les enveloppes, pas les courriels eux-mêmes. C'est pour cela que j'ai déjà préparé dovecot comme MDA : pour faire rapidement du Sieve en cas de pic de spam.
Les autres restrictions de Postfix sur l'émetteur ou le destinataire sont natives avec OpenSMTPD : « smtpd_reject_unlisted_sender » est englobée dans ma vérification d'une auth SASL ou d'un compte local ; « reject_unknown_sender_domain » ne s'applique que si Postfix n'est pas la destination finale ; Etc.
Commandes utiles :
smtpd -n ;smtpctl show queue ;smtpctl schedule all ;smtpctl remove all ;smtpctl update table aliases.Rappel : environ 25 % des agents de la fonction publique française ne sont pas des fonctionnaires, mais des CDD / CDI (de droit public).
Jusqu'à maintenant, les juridictions administratives jugeaient que le principe d'égalité, et la comparaison avec d'autres agents contractuels placés dans la même situation, ne pouvaient être utilement invoqués à l'encontre d'une décision déterminant la rémunération d'un agent contractuel de l'État. Ne restait que la voie de l'exception pour opposer ce principe à la réglementation fondant la décision de l'administration (ce qui me semble vain dans la majorité des cas).
Le Conseil d'État est revenu sur cela le 6 mai 2026, dans les limites exposées par le Rapporteur public dans ses conclusions qui exposent bien le raisonnement.
Il se déduit que l'administration ne pourra plus systématiquement renvoyer à une prétendue négociation individuelle (qui, bien souvent, n'existe pas), à l'article 1-3 du décret 86-83, blablabla : le rejet devra être plus habile.
Dans ces conclusions, on lit également :
[…] Relevons d’ailleurs que ces dispositions confirment, s’il en était besoin, que la fixation de la rémunération d’un agent public non titulaire relève bien d’une décision unilatérale de l’administration, même si elle constituera ensuite l’un des éléments du contrat de cet agent, lequel au demeurant, comme vous le savez, ne procède pas véritablement d’une démarche synallagmatique emportant pour les parties des obligations et concessions réciproques mais s’analyse davantage comme un acte plaçant l’agent dans une situation quasi-statutaire.
[…]
[…] Et, s’il existe bien évidemment d’importantes différences entre la situation d’un agent contractuel public, soumis à un quasi-statut, et un salarié de droit privé, qui évolue dans un cadre où la liberté contractuelle est bien plus prégnante […] »
C'est "rigolo" ce « quasi-statut », car l'un des prétendus arguments des juridictions pour valider une inégale rémunération entre contractuels et titulaires, à travail et situation égales, est la détermination de celle-ci : contrat versus statut, libre négociation, deux modes de détermination de la rémunération, deux mondes très étanches, très différents, patati, patata. Pas tant que cela en définitive ? 🤡️ (Attention : les conclusions d'un Rapporteur public n'engagent pas la juridiction, et ce point n'est pas repris dans la décision.)