[{"article":{"uuid":"6339a493-0c2e-459b-94fa-bcf4f9761e47","slug":"etc-bashrc","title":"/etc/bashrc","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-19 06:55:29","created_at":"2023-02-19 06:55:29","updated_at":"2023-02-19 06:55:29","plain":"est un fichier de configuration pour la shell Bash qui est généralement utilisé par les systèmes d'exploitation basés sur UNIX ou Linux. Il peut contenir des commandes et des paramètres de configuration pour la shell Bash qui doivent être exécutés pour tous les utilisateurs de la machine. Il peut contenir des définitions de variables d'environnement, des alias de commandes, des options de configuration pour Bash, et d'autres commandes qui doivent être exécutées pour tous les utilisateurs de la machine au démarrage de la session. Il est généralement utilisé pour configurer des paramètres tels que la mise en forme de la ligne de commande, les couleurs, les options de historique de commandes, les options de tabulation automatique, et d'autres paramètres de configuration pour tous les utilisateurs. A noter que cela dépend des paramétrages de l'administrateur système de chaque distribution. Voir .bash_profile pour obtenir des exemples."},"score":6.75,"snippet":"est un fichier de configuration pour la shell Bash qui est généralement utilisé par les systèmes d'exploitation basés sur UNIX ou Linux. Il peut contenir des commandes et des paramètres de configuration pour la shell Bas…","tier":1},{"article":{"uuid":"bea327e2-9d1c-4ff6-a5a5-26748c80018b","slug":"anatomie-d-un-script-d-auto-deploiement-bash-fetch-scripts-sh","title":"Script Bash d'auto-déploiement : `fetch_scripts.sh`","category":"informatique","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2026-05-04 07:04","created_at":"2026-05-12 10:55:39","updated_at":"2026-05-12 11:10:51","plain":"Comment un simple script Bash peut télécharger, mettre à jour et synchroniser une bibliothèque de scripts distants — et pourquoi il faut le lire avec un œil critique.\r\n\r\nfetchscripts.sh\r\n📝 Note — Cet article est une autocritique. Le script analysé ici est de ma propre fabrication, déployé sur mes propres machines. L'exercice consiste à le relire avec la distance d'un reviewer extérieur, pour identifier ce qui tient la route et ce qui mériterait d'être repris.\r\n\r\nLe contexte\r\n\r\nL'idée derrière ce script est élégante : centraliser une collection de scripts utilitaires dans un dépôt Git public (ici, une instance Forgejo auto-hébergée), puis fournir un unique point d'entrée que l'on télécharge sur n'importe quelle machine. Ce point d'entrée se met à jour tout seul, propose à l'opérateur de choisir quels sous-ensembles de scripts récupérer, et maintient une synchronisation locale du dépôt distant.\r\n\r\nC'est typiquement le genre d'outil qui se déploie en une ligne :\r\n\r\n\r\n\r\nDécortiquons ce qu'il fait, étape par étape, puis voyons où il faudrait taper.\r\n--\r\n\r\nÉtape 1 — L'auto-mise à jour\r\n\r\n\r\n\r\nCe qui se passe : le script télécharge sa propre version distante dans , la compare octet-à-octet avec lui-même (), et si elle diffère, il s'écrase, se rend exécutable, et se relance via (qui remplace le processus courant — pas d'empilement de shells).\r\n\r\nPourquoi c'est malin : ça garantit qu'à chaque exécution, l'opérateur travaille avec la version canonique du dépôt. Pas besoin de mécanisme de versioning, pas de vérification de hash, pas de paquet à publier.\r\n\r\nPourquoi c'est risqué : on y reviendra dans la critique, mais en résumé — l'auto-mise à jour silencieuse depuis une URL en HTTPS sans signature est une porte d'entrée pour la chaîne d'approvisionnement.\r\n--\r\n\r\nÉtape 2 — Récupération du catalogue de dossiers\r\n\r\n\r\n\r\nLe dépôt distant contient un fichier qui liste les catégories de scripts disponibles (par exemple : , , , …). Ce fichier est la source de vérité : ajouter une catégorie côté serveur la rend immédiatement disponible côté client.\r\n\r\n (alias ) lit le fichier ligne à ligne dans un tableau Bash. Plus propre qu'une boucle .\r\n\r\nUn dossier est marqué comme obligatoire — il sera toujours téléchargé, sans demander à l'utilisateur.\r\n--\r\n\r\nÉtape 3 — Mémoire de la sélection précédente\r\n\r\n\r\n\r\nÀ chaque exécution, le script relit la sélection de la fois précédente. C'est ce qui permet à l'interface graphique (étape suivante) de pré-cocher les bons dossiers : on n'a pas à refaire son choix à chaque mise à jour.\r\n--\r\n\r\nÉtape 4 — L'interface \r\n\r\n\r\n\r\n est l'outil de dialogue ncurses standard sur Debian/Ubuntu — il affiche cette boîte bleue familière avec des cases à cocher, navigable au clavier. Idéal en SSH.\r\n\r\nLa gymnastique est un classique : écrit son interface sur stdout et sa réponse sur stderr. Il faut donc échanger les deux pour capturer la sélection dans tout en laissant l'interface s'afficher.\r\n\r\nL'expression est une astuce courante pour tester l'appartenance à un tableau Bash — on entoure d'espaces pour éviter les correspondances partielles ( qui matcherait ).\r\n--\r\n\r\nÉtape 5 — Synchronisation : ajouts et suppressions\r\n\r\n\r\n\r\nLogique de diff : tout ce qui était sélectionné avant et ne l'est plus est supprimé du disque. Ça maintient le répertoire local propre — pas de scripts orphelins qui traînent.\r\n\r\n renvoie la sélection sous forme de chaîne entre guillemets (), d'où le pour les retirer avant de constituer le tableau.\r\n--\r\n\r\nÉtape 6 — Téléchargement des fichiers de chaque dossier\r\n\r\n\r\n\r\nMême logique récursive d'un niveau plus bas : chaque dossier contient son propre listant ses fichiers. On télécharge ceux qui y figurent, on supprime ceux qui n'y figurent plus, et on rend tout exécutable.\r\n\r\nC'est une forme de artisanal, basé sur des manifestes plats. Ça fonctionne sans avoir à installer sur la machine cible — seuls et sont requis.\r\n--\r\n\r\nCritique : ce qui marche, ce qui inquiète\r\n\r\nLes bons côtés\r\n\r\nLa logique d'idempotence est solide. Le script peut tourner cent fois de suite, il convergera toujours vers le même état : les dossiers sélectionnés contiendront exactement les fichiers du manifeste, ni plus, ni moins. C'est le bon réflexe DevOps.\r\n\r\nL'auto-bootstrap est ergonomique. Une seule URL à retenir, tout le reste se télécharge tout seul. Pour une bibliothèque personnelle de scripts d'admin, c'est imbattable en simplicité.\r\n\r\nPas de dépendances exotiques. , , : tout est disponible nativement sur Debian. Le script tourne aussi bien sur un conteneur LXC fraîchement provisionné que sur une machine établie.\r\n\r\nLe manifeste séparé ( et ) découple la liste des fichiers de leur contenu. C'est plus simple qu'un parsing HTML de l'index Git, et ça reste sous contrôle éditorial.\r\n\r\nLes angles morts\r\n\r\n1. Aucune vérification d'intégrité\r\n\r\nC'est le point critique. Le script télécharge du code exécutable en HTTPS, sans vérifier :\r\nni signature GPG,\r\nni hash SHA256,\r\nni même que le serveur a bien répondu correctement.\r\n\r\n en mode silencieux n'échoue pas visiblement : si la requête renvoie une page d'erreur 404 ou une page de connexion captive Wi-Fi en HTML, elle sera écrite dans le fichier de destination. La vérification suivante () considérera ce HTML comme « différent », fera le , et au prochain le shell essaiera d'exécuter du HTML. Au mieux ça crashe, au pire ça exécute des balises interprétables.\r\n\r\nPire encore pour l'auto-update : si quelqu'un compromet l'instance Forgejo (ou interpose un proxy malveillant capable de servir un certificat valide pour ), le prochain télécharge et exécute du code arbitraire avec les privilèges de l'utilisateur courant — souvent root pour ce genre d'outils d'admin.\r\n\r\nCorrectif minimal : publier un fichier signé GPG dans le dépôt, le télécharger, vérifier sa signature avec une clé connue localement, puis valider chaque fichier téléchargé contre ce manifeste.\r\n\r\n2. sans gestion d'erreur\r\n\r\n\r\n\r\nSi échoue (réseau coupé, DNS HS, certificat expiré), sera soit vide soit absent. retournera « différent », et le script écrasera la version locale par un fichier vide. À la prochaine exécution, plus rien ne fonctionne.\r\n\r\nCorrectif : vérifier le code de retour de , vérifier que le fichier téléchargé n'est pas vide, et vérifier qu'il commence bien par avant d'écraser quoi que ce soit.\r\n\r\n\r\n\r\n3. Le perd les modifications de l'environnement\r\n\r\nSi le script a été lancé par (donc sans le bit exécutable, sans shebang utilisé), vaut . Après , on un fichier qui pourrait ne pas être dans le . En pratique ça marche parce qu'on est dans le bon répertoire, mais c'est fragile — un quelque part dans le script suffirait à le casser.\r\n\r\n4. Injection via les noms de fichiers du manifeste\r\n\r\n\r\n\r\nLe contenu de est utilisé directement dans une URL et dans un chemin de fichier local. Si quelqu'un peut écrire dans ce fichier manifeste (ce qui revient à pouvoir pousser sur le dépôt Forgejo), il peut y mettre des chemins comme et écrire en dehors du répertoire prévu.\r\n\r\n neutralise partiellement la chose côté nom local, mais l'URL côté distant accepte n'importe quoi. C'est moins critique que la première faille, mais ça mérite un filtre regex ( uniquement).\r\n\r\n5. et la sélection vide\r\n\r\nSi l'utilisateur ne coche rien et valide, est vide. Le script continue avec seulement , ce qui est probablement le comportement attendu. Mais si n'est pas installé (rare mais possible, par exemple sur Alpine ou un Debian minimal sans ), le script échoue avec une erreur peu explicite. Un test préalable éviterait la déconvenue.\r\n\r\n6. Pas de log, pas de mode dry-run\r\n\r\nPour un outil qui supprime des fichiers (), l'absence d'option qui afficherait ce qui serait fait sans rien toucher est gênante. Une frappe distraite sur la checklist, et un dossier entier disparaît sans warning.\r\n\r\n7. Le verrou manquant\r\n\r\nRien n'empêche deux instances de de tourner en parallèle (par exemple via et un opérateur en interactif). Un sur un fichier de lock éviterait des courses sur les opérations de download/delete.\r\n--\r\n\r\nVerdict\r\n\r\nC'est un script utile, lisible, et bien construit pour un usage personnel sur des machines de confiance. La logique de synchronisation est saine, l'ergonomie est appréciable, l'auto-bootstrap est élégant.\r\n\r\nMais dès qu'on franchit la frontière du « j'utilise ça sur mes propres machines avec mon propre dépôt », les manques se font sentir : pas de vérification d'intégrité, pas de gestion d'erreur réseau, pas d'option de récupération. Dans un contexte d'équipe ou de production, ces points sont bloquants.\r\n\r\nPistes d'évolution prioritaires\r\n\r\n1. Signature ou checksum : publier un signé GPG, le vérifier avant tout ou exécution.\r\n2. en tête de script pour faire échouer proprement à la première erreur.\r\n3. Vérifier : code de retour, fichier non vide, shebang présent.\r\n4. Backup avant écrasement : conserver la version précédente () pour pouvoir revenir en arrière.\r\n5. Option pour visualiser sans appliquer.\r\n6. Filtre regex sur les noms de fichiers du manifeste pour éviter les traversées de chemin.\r\n7. Lock file** via pour éviter les exécutions concurrentes.\r\n\r\nAvec ces ajouts, on passe d'un script « pratique » à un outil de déploiement digne de ce nom — sans rien perdre de sa simplicité initiale."},"score":5.25,"snippet":"Comment un simple script Bash peut télécharger, mettre à jour et synchroniser une bibliothèque de scripts distants — et pourquoi il faut le lire avec un œil critique.\r\n\r\nfetchscripts.sh\r\n📝 Note — Cet article est une auto…","tier":1},{"article":{"uuid":"60acde33-f1fa-4ab5-867e-8fb506211186","slug":"script-bash-upload","title":"Script Bash pour upload de CSV","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-16 15:39:20","created_at":"2023-02-16 15:39:20","updated_at":"2023-02-16 15:39:20","plain":"Dans le script Bash, la commande \"curl\" permet d'envoyer le fichier vers la page PHP d'upload. Voici un exemple de code Bash qui télécharge tous les fichiers CSV dans un répertoire, à l'exception de celui qui a été modifié le jour même. Pour exclure le fichier CSV modifié le jour même de l'envoi, on a utilisé la commande find pour localiser tous les fichiers CSV dans le répertoire spécifié qui ne sont pas modifiés aujourd'hui. Ensuite, on boucle sur cette liste de fichiers et exécuter le code d'envoi de fichier pour chaque fichier trouvé. Pour chaque fichier, nous avons calculé le SHA-1 localement, envoyé le fichier au script PHP, récupéré le SHA-1 calculé par le script PHP et comparé les deux valeurs de hachage. Si les valeurs de hachage sont identiques, nous avons affiché un message de confirmation et déplacé le fichier CSV dans le dossier . Si les valeurs de hachage ne sont pas identiques, nous avons affiché un message d'erreur."},"score":5.25,"snippet":"Dans le script Bash, la commande "curl" permet d'envoyer le fichier vers la page PHP d'upload. Voici un exemple de code Bash qui télécharge tous les fichiers CSV dans un répertoire, à l'exception de celui qui a été modif…","tier":1},{"article":{"uuid":"571f1f79-ae4a-41d5-bf73-870c4d2f66c1","slug":"bash","title":"BASH","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-13 21:46:30","created_at":"2023-02-13 21:46:30","updated_at":"2023-02-13 21:46:30","plain":"BASH est un interpréteur en ligne de commande de type script. C'est le shell Unix du projet GNU. Il est utilisé également utilisé avec Linux sous Debian, Fedora, MX Linux, Mint ou Raspbian. Table des matières\nLes pages\n Les sous-catégories\n"},"score":5.25,"snippet":"BASH est un interpréteur en ligne de commande de type script. C'est le shell Unix du projet GNU. Il est utilisé également utilisé avec Linux sous Debian, Fedora, MX Linux, Mint ou Raspbian. Table des matières\nLes pages\n<…","tier":1},{"article":{"uuid":"c55f81b2-4dd6-411c-890d-8e983dc930b1","slug":"20230210-resoudre-les-erreurs-de-certificat-ssl-avec-un-script-bash-pour-dovecot","title":"Résoudre les erreurs de certificat SSL avec un script BASH pour Dovecot","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-10 22:20:48","created_at":"2023-02-10 22:20:48","updated_at":"2023-02-10 22:20:48","plain":"Le certificat de Dovecot est un élément crucial pour la sécurité et la confidentialité des communications par courrier électronique. Dovecot est un serveur de messagerie populaire qui permet aux utilisateurs de gérer leurs e-mails sur leur propre serveur avec le protocole IMAP. Cependant, pour assurer la sécurité des données, un certificat de sécurité valide est nécessaire pour établir une connexion sécurisée entre le serveur et les clients de messagerie. Malheureusement, même lorsque le certificat de Dovecot est correctement renouvelé, il peut arriver que le certificat fourni par Dovecot reste sur les anciennes propriétés, ce qui peut entraîner une erreur de certificat. C'est ce qui est arrivé récemment, causant des problèmes pour les utilisateurs de la messagerie abonnel.fr. Pour résoudre ce problème, j'ai mis en place un script en ligne de commande (ou script BASH) pour vérifier la date de validité du certificat disponible sur le port 993. Si le certificat était à 10 jours d'expiration, le script relance automatiquement le service Dovecot. Cependant, si cela ne suffit pas à résoudre le problème, est que le certificat est toujours à moins de 10 jours d'expiration, le script envoie un e-mail d'alerte à l'administrateur système pour qu'il puisse prendre les mesures nécessaires pour résoudre le problème. Grâce à ce script, nous pouvons maintenant être sûrs que le certificat de Dovecot est toujours valide et que le service est disponible pour les utilisateurs. Pour en savoir plus sur Dovecot et comment configurer un certificat de sécurité pour votre serveur de messagerie, je vous invite à consulter l'article sur Dovecot."},"score":5.25,"snippet":"Le certificat de Dovecot est un élément crucial pour la sécurité et la confidentialité des communications par courrier électronique. Dovecot est un serveur de messagerie populaire qui permet aux utilisateurs de gérer leu…","tier":1},{"article":{"uuid":"5538c945-6ba4-48af-bb1f-8a0a7d4d9ff4","slug":"liste-variables-bash","title":"Variables prédéfinies dans BASH","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-12-26 18:35:17","created_at":"2020-12-26 18:35:17","updated_at":"2020-12-26 18:35:17","plain":"Références\n"},"score":5.25,"snippet":"Références\n<https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html>","tier":1},{"article":{"uuid":"57d5fbd4-0bd2-44a1-896c-151aa527f713","slug":"execution-unique-d-un-script-bash","title":"Exécution unique d'un script BASH","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-12-25 22:14:45","created_at":"2020-12-25 22:14:45","updated_at":"2020-12-25 22:14:45","plain":"Il arrive que l'on est besoin d'exécuter de manière un script. C'est à dire que le script ne doit pas démarré alors que le précédent lancement n'est pas terminé. Il faut savoir que lorsqu'un script ou un programme s'exécute, le système d'exploitation lui attribue un identifiant unique, appelé process id. Le script doit s'assurer une execution unique. Pour se faire, il déclarera son process id dans un fichier. Le fichier sera consulté systématiquement au démarrage. Si le process id est toujours en cours d'exécution, alors l'exéction qui vient de démarrer, s'arrêtera. Voici l'algo proposé : En BASH, voici le code proposé pour un script de sauvegarde :"},"score":5.25,"snippet":"Il arrive que l'on est besoin d'exécuter de manière un script. C'est à dire que le script ne doit pas démarré alors que le précédent lancement n'est pas terminé. Il faut savoir que lorsqu'un script ou un programme s'exéc…","tier":1},{"article":{"uuid":"2d2a63f0-bba6-4b5e-a5e6-0ef2e2b5b39d","slug":"dnf","title":"dnf","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-28 19:41:07","created_at":"2023-02-28 19:41:07","updated_at":"2023-02-28 19:41:07","plain":"--\nDNF signifie \"Dandified Yum\", et c'est un gestionnaire de paquets pour les systèmes d'exploitation Linux utilisant RPM (Red Hat Package Manager). Il est principalement utilisé pour gérer les paquets et les dépendances sur les distributions Fedora, CentOS et Red Hat Enterprise Linux. Avec DNF, les utilisateurs peuvent installer, mettre à jour, désinstaller et rechercher des paquets sur leur système. Il peut également gérer les dépendances entre les paquets, de sorte que les utilisateurs n'ont pas à s'occuper de la résolution des dépendances manuellement. Informations concernant les fichiers\nBinaire : \nFichiers de cache : \nConfiguration principale : \nConfiguration des dépôts : Configurer un proxy pour tous les utilisateurs\nParfois, lorsque vous travaillez dans un environnement réseau limité, vous devez configurer un proxy pour accéder à Internet. Vous pouvez également configurer un cache en ligne, également appelé proxy cache qui sera utilisé pour stocker des copies des paquets demandées afin d'être réutilisés ultérieurement pas d'autres machines. Voici comment configurer un proxy pour tous les utilisateurs et pour un utilisateur spécifique sur Fedora en utilisant DNF. Pour configurer un proxy pour tous les utilisateurs, vous devez modifier le fichier . \nOuvrez ce fichier en mode édition en utilisant la commande suivante : Ajoutez les lignes suivantes pour configurer un proxy simple : Si le proxy nécessite une identification, ajoutez également les lignes suivantes : \nEnregistrez et fermez le fichier. À partir de maintenant, tous les utilisateurs sur votre système seront en mesure d'utiliser le proxy pour accéder à Internet en utilisant DNF.\n C'est tout! Vous savez maintenant comment configurer un proxy avec DNF pour tous les utilisateurs sur Fedora. En suivant les étapes décrites ci-dessus, vous pouvez facilement accéder à Internet en utilisant DNF même dans un environnement réseau limité. Configurer un proxy pour un utilisateur spécifique\nPour configurer un proxy pour un utilisateur spécifique, vous devez ajouter les lignes suivantes dans le fichier ou : Le fichier est utilisé pour les utilisateurs non-root, tandis que le fichier est lu à chaque démarrage de la session utilisateur. Il est recommandé de redémarrer la session utilisateur après avoir effectué des modifications pour que les modifications prennent effet. C'est tout! Vous savez maintenant comment configurer un proxy avec DNF pour un utilisateur spécifique sur Fedora. En suivant les étapes décrites ci-dessus, vous pouvez facilement accéder à Internet en utilisant DNF même dans un environnement réseau limité.\nRechercher un paquet installé\nL'option \"installed\" spécifie à DNF de n'afficher que les paquets installés sur le système : dnf list installed\n- Lister tous les paquets installés sur votre système qui correspondent à la expression régulière \"krb?-\" : dnf list installed \"krb?-\" L'expression régulière \"krb?-\" signifie que DNF va rechercher tous les paquets dont le nom commence par \"krb\" suivi d'un caractère unique, puis suivi d'un tiret et de tout ce qui suit. Cela signifie que tous les paquets qui ont un nom similaire à \"krb-xxx\" ou \"krb-yyy\" seront listés par la commande. Surveiller les mises à jour disponibles sur Fedora DNF\nPour surveiller les mises à jour disponibles sur votre système Fedora utilisant DNF, vous pouvez utiliser un script bash utilisant sans droit root. Pour exécuter la commande en tant que service et mémoriser les informations de mise à jour dans un fichier, vous pouvez utiliser un script bash et une tâche cron. \nLe script peut être déposé dans n'importe quel répertoire sur votre système, mais il est souvent pratique de le déposer dans un répertoire dédié aux scripts. Certains répertoires communs pour les scripts incluent (répertoire des binaires locaux). Voici un exemple de scripts que vous pouvez utiliser : \nEnregistrez ce script dans un fichier, puis rendez-le exécutable en utilisant la commande suivante : La commande pour créer le fichier updatefile s'il n'existe pas encore. La commande avec l'option 644 permet à tous les utilisateurs (propriétaire, utilisateurs du groupe et autres utilisateurs) d'avoir uniquement des autorisations de lecture sur le fichier : \nEnsuite, pour exécuter ce script en tant que service, vous pouvez ajouter une tâche cron. Pour ouvrir le fichier de configuration cron, utilisez la commande suivante : sudo crontab -e \nAjoutez la ligne suivante à ce fichier pour exécuter le script tous les heures :\n 0 /1 /usr/local/bin/checkupdate.sh Cette ligne exécutera le script tous les heures. Vous pouvez ajuster l'heure en fonction de vos besoins.\n \nPour afficher les informations de mise à jour lors de l'ouverture d'un terminal, vous pouvez ajouter le code suivant à votre fichier de configuration bash /.bashrc : Après avoir enregistré les modifications, ouvrez un nouveau terminal pour vérifier que les informations de mise à jour s'affichent correctement. \nRetrouver le script d'installation automatique à l'adresse git.abonnel.fr scripts-bash Executez la ligne suivante dans votre Terminal :\n sudo bash -c \"$(curl -fsSL https://git.abonnel.fr/cedricAbonnel/scripts-bash/raw/branch/main/installcheckupdate.sh)\" "},"score":1,"snippet":"…ter le code suivant à votre fichier de configuration bash /.bashrc : </callout> Après avoir enregistré les modifications, ouvrez un nouveau terminal pour vérifier que les informations de mise à jour s'affichent correctem…","tier":2},{"article":{"uuid":"f525ce94-b1f4-459c-a1bc-25d3e0bdcc58","slug":"alias","title":"alias","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-19 07:03:18","created_at":"2023-02-19 07:03:18","updated_at":"2023-02-19 07:03:18","plain":"En Bash, un alias est un raccourci ou une abréviation qui est utilisé pour remplacer une commande ou une séquence de commandes plus longue par un seul mot ou une expression. Par exemple, si vous utilisez fréquemment la commande , vous pouvez créer un alias nommé pour cette commande en utilisant la syntaxe suivante dans le terminal : Maintenant, chaque fois que vous tapez dans le terminal, Bash exécutera automatiquement la commande . Les alias peuvent être utiles pour gagner du temps et améliorer l'efficacité lorsque vous travaillez avec la ligne de commande en réduisant la quantité de texte que vous devez taper pour exécuter une commande particulière. Vous pouvez enregistrer des alias dans le fichier si ce dernier existe. Dans certains systèmes, le fichier n'existe pas par défaut, mais vous pouvez le créer manuellement dans votre répertoire d'utilisateur en utilisant la commande suivante : Ensuite, vous pouvez ajouter vos alias dans ce fichier en utilisant la même syntaxe que celle utilisée pour définir des alias dans le terminal. Par exemple : Une fois que vous avez ajouté vos alias dans le fichier , vous devez exécuter la commande suivante pour les charger dans votre session Bash en cours : Cette commande rechargera le fichier .bashrc qui charge normalement le fichier dans votre session Bash. Notez que le nom et l'emplacement des fichiers de configuration Bash peuvent varier selon le système. Par conséquent, il est possible que vous deviez ajuster les instructions ci-dessus en fonction de votre configuration spécifique. Quelques exemples\nVoici quelques exemples d'alias de commandes qui peuvent être utiles :\npour : comme expliqué précédemment, cela affichera le contenu d'un répertoire en mode long, avec les permissions et les détails de propriétaire affichés.\navec couleur : pour ajouter de la couleur à la sortie de la commande grep pour améliorer la lisibilité, vous pouvez utiliser l'alias suivant :\n: si vous créez souvent des répertoires imbriqués, vous pouvez utiliser l'option -p pour créer des répertoires parents si nécessaire. Vous pouvez également créer un alias nommé mkdirp pour simplifier l'opération.\navec tri inversé : si vous utilisez souvent la commande ps pour afficher les processus en cours d'exécution sur votre système, vous pouvez ajouter un alias nommé pss pour trier les résultats par ordre décroissant d'utilisation de la mémoire.\ntrié par taille : si vous voulez afficher les dossiers par taille décroissante, vous pouvez ajouter un alias nommé dus pour trier la sortie de la commande du par ordre décroissant de taille.\navec confirmation : pour ajouter une confirmation avant de copier des fichiers, vous pouvez créer un alias nommé cp qui inclut l'option -i pour demander une confirmation avant d'écraser les fichiers existants.\navec confirmation : de même, pour ajouter une confirmation avant de supprimer des fichiers, vous pouvez créer un alias nommé rm qui inclut l'option -i pour demander une confirmation avant de supprimer chaque fichier.\navec couleur : si vous utilisez Git pour gérer des projets de développement de logiciels, vous pouvez ajouter de la couleur à la sortie de la commande git pour améliorer la lisibilité.\navec retour rapide : pour revenir rapidement au répertoire parent, vous pouvez créer un alias nommé .. qui exécute la commande cd .. pour revenir au répertoire parent.\navec unités de mémoire lisibles : si vous utilisez souvent la commande free pour surveiller l'utilisation de la mémoire, vous pouvez ajouter l'option -h pour afficher les tailles de mémoire dans des unités lisibles pour l'homme (comme \"1.23 GiB\" au lieu de \"1289311232\").\navec numéros de ligne : pour afficher les numéros de ligne dans la sortie de la commande grep, vous pouvez ajouter l'option -n à l'alias grep.\navec tri inversé : pour afficher les fichiers et répertoires triés par ordre inverse de date de modification, vous pouvez créer un alias nommé lsr.\navec compression gzip : pour créer une archive tar compressée avec gzip, vous pouvez créer un alias nommé targz.\navec taille et espace libre en unités lisibles : pour afficher l'espace disque disponible sur les partitions de votre système dans des unités lisibles pour l'homme, vous pouvez créer un alias nommé dfh. Ces exemples montrent comment vous pouvez personnaliser vos alias de commandes pour automatiser des tâches courantes, faciliter la navigation dans les répertoires et améliorer la lisibilité de la sortie de la commande."},"score":1,"snippet":"…ssion Bash en cours : Cette commande rechargera le fichier .bashrc qui charge normalement le fichier dans votre session Bash. Notez que le nom et l'emplacement des fichiers de configuration Bash peuvent varier selon le …","tier":2},{"article":{"uuid":"b160387e-22ab-424e-8270-c92ffe595264","slug":"tmpfs","title":"128 · tmpfs","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-16 14:33:53","created_at":"2023-02-16 14:33:53","updated_at":"2023-02-16 14:33:53","plain":"Par défaut, Fedora monte le système de fichiers tmpfs sur le point de montage , ce qui signifie que tous les fichiers temporaires créés dans ce dossier seront stockés en mémoire vive. tmpfs est un système de fichiers temporaire en mémoire vive (RAM) qui permet de stocker des fichiers temporaires pendant que le système est en cours d'exécution. Cela présente certains avantages, notamment des temps d'accès plus rapides aux fichiers temporaires, car la mémoire vive est plus rapide que les disques durs ou les SSD. Cela permet également de réduire l'usure du disque dur ou du SSD, car les fichiers temporaires ne sont pas écrits en permanence sur le disque. Cependant, l'utilisation de tmpfs peut également avoir des inconvénients si votre système est en manque de mémoire vive, car cela peut entraîner une utilisation accrue de la mémoire vive et ralentir les performances de votre système. Si vous avez besoin de plus d'espace pour stocker des fichiers temporaires sur votre système Fedora, vous pouvez modifier le point de montage pour utiliser un système de fichiers différent, tel qu'un disque dur ou un SSD. Pour ce faire, vous devez modifier le fichier et modifier la ligne correspondant à pour monter un autre système de fichiers à la place de tmpfs. sudo systemctl mask tmp.mount\n \nLa commande permet de désactiver complètement le montage du système de fichiers tmpfs. En utilisant cette commande, le système ne montera plus le système de fichiers tmpfs au démarrage, même si la ligne correspondante est toujours présente dans le fichier . Redémarrez votre système pour que les modifications prennent effet. Cela désactivera complètement le montage du système de fichiers tmpfs, ce qui peut avoir un impact sur les performances de votre système si vous utilisez des applications qui ont besoin d'un accès rapide aux fichiers temporaires. Combiner tmpfs et fichier\nPour combiner la mémoire vive et le stockage de fichiers pour le dossier sous Fedora, vous pouvez monter tmpfs sur le dossier . Cela permet de stocker les fichiers temporaires dans la mémoire vive, ce qui peut accélérer l'accès aux fichiers temporaires et réduire l'usure du disque dur ou du SSD. Éditez le fichier : tmpfs /tmp tmpfs defaults,size=1G 0 0 Cette ligne monte tmpfs sur le dossier \"/tmp\" avec une taille de 1 Go. Vous pouvez ajuster la taille en fonction de vos besoins. Ajoutez une autre ligne pour monter un système de fichiers de disque dur sur un point de montage de votre choix, comme . La ligne devrait ressembler à quelque chose comme ceci : /dev/sda1 /var/tmp ext4 defaults 0 2 Cette ligne monte le système de fichiers de disque dur sur le point de montage en utilisant le système de fichiers \"ext4\". Montez tmpfs sur le dossier et le système de fichiers de disque dur en utilisant la commande suivante : sudo mount -a Cette commande va monter tmpfs sur le dossier et le système de fichiers de disque dur sur le point de montage \"/var/tmp\" en utilisant les paramètres définis dans le fichier . Après avoir effectué ces étapes, les fichiers temporaires seront stockés en mémoire vive dans le dossier jusqu'à ce que l'espace alloué soit rempli, puis les fichiers supplémentaires seront stockés sur le système de fichiers de disque dur monté sur le point de montage . En utilisant cette méthode, vous pouvez bénéficier des avantages de la mémoire vive pour stocker des fichiers temporaires, tout en évitant les inconvénients d'un manque d'espace de stockage. Le système est conçu pour rechercher le point de montage en premier lorsqu'il recherche un emplacement pour stocker des fichiers temporaires. Si le dossier est plein, le système tentera alors de stocker les fichiers temporaires dans le dossier . Si ce dernier est également plein, le système affichera un message d'erreur indiquant qu'il n'y a plus d'espace disponible pour stocker des fichiers temporaires. Toutefois, si vous souhaitez configurer le système pour utiliser le dossier comme emplacement principal pour stocker des fichiers temporaires, vous pouvez modifier la variable d'environnement pour qu'elle pointe vers le dossier . Pour ce faire, vous pouvez ajouter la ligne suivante à votre fichier \".bashrc\" : export TMPDIR=/var/tmp"},"score":1,"snippet":"…re, vous pouvez ajouter la ligne suivante à votre fichier ".bashrc" : export TMPDIR=/var/tmp","tier":2},{"article":{"uuid":"4cf880e6-e4e0-42dd-aae2-675837850b83","slug":"compromission-de-jdownloader-6-7-mai-2026-analyse-indicateurs-et-procedure-de-detection","title":"JDownloader : quand le CMS devient la faille","category":"informatique","author":"cedric@abonnel.fr","cover":"cover.webp","published":true,"published_at":"2026-05-12 17:09","created_at":"2026-05-12 17:10:36","updated_at":"2026-05-12 17:21:01","plain":"À propos de l'incident de sécurité affectant le site officiel jdownloader.org les 6 et 7 mai 2026.\r\n\r\nJDownloader expliqué simplement\r\n\r\nJDownloader est un gestionnaire de téléchargements écrit en Java, distribué gratuitement par l'éditeur allemand AppWork GmbH depuis plus de quinze ans. Il sert essentiellement à automatiser la récupération de fichiers depuis des hébergeurs (Mega, Uptobox, Rapidgator…), des plateformes vidéo et des services de liens premium. Côté utilisateur, c'est l'outil qu'on lance pour récupérer une série de fichiers en une opération, plutôt que cliquer sur cent liens un par un. L'application est multiplateforme — Windows, Linux, macOS — et tourne sur quelques millions de postes dans le monde.\r\n\r\nLe projet est distribué de plusieurs façons : un JAR principal (le binaire Java pur), des installateurs natifs par OS depuis le site officiel, et des paquets passant par des canaux distribués comme Flatpak, Snap ou Winget. C'est cette diversité de canaux qui va jouer un rôle central dans ce qui suit.\r\n\r\nL'incident : ce qui s'est passé\r\n\r\nEntre le 6 mai 2026 à 00 h 01 UTC et le 7 mai 2026 à 17 h 06 UTC, le site officiel a distribué des installateurs piégés à la place des binaires légitimes. La fenêtre n'a duré qu'environ 48 heures, et seuls deux liens ont été affectés. Mais pendant cette fenêtre, tout utilisateur qui passait par le bon parcours téléchargeait un cheval de Troie au lieu d'un gestionnaire de téléchargements.\r\n\r\nLe scénario reconstitué par l'équipe d'AppWork et les chercheurs en sécurité (BleepingComputer, Thomas Klemenc, équipe Rescana) se déroule en quatre temps.\r\n\r\n1. Compromission du CMS du site. Les attaquants ont exploité une vulnérabilité non corrigée dans le système de gestion de contenu de , qui permettait de modifier les listes de contrôle d'accès et le contenu publié sans authentification. Point crucial : ils n'ont pas eu accès au serveur sous-jacent, ni au système de fichiers, ni à l'infrastructure de build. Juste au contenu web — et ça a suffi.\r\n\r\n2. Réécriture de deux liens. Plutôt que de tenter de modifier les binaires originaux (qui étaient hors de leur portée), les attaquants ont fait beaucoup plus simple : ils ont changé l'URL cible de deux liens publics sur la page de téléchargement. Le lien « Download Alternative Installer » pour Windows et le script shell pour Linux pointaient désormais vers des fichiers malveillants hébergés sur une infrastructure tierce. Le HTML autour, lui, restait identique. Visuellement, rien ne distinguait la page propre de la page piégée.\r\n\r\n3. Charges utiles différenciées par plateforme. Sur Windows, l'installateur piégé agit comme un loader qui déploie un RAT (Remote Access Trojan) écrit en Python, fortement obfusqué, communiquant avec deux serveurs de commande et contrôle ( et ). Le RAT est modulaire : il reçoit du code Python depuis le C2 et l'exécute, ce qui donne aux attaquants une porte ouverte indéfiniment extensible. Sur Linux, le script shell modifié télécharge une archive depuis , déguisée en fichier SVG, dont il extrait deux binaires ELF — et . Le second est installé en SUID-root dans , le premier est copié dans , et la persistance est assurée par un script déposé dans . Le malware se lance ensuite déguisé en , un nom de processus qui existe légitimement sur la plupart des distributions.\r\n\r\n4. Détection par la communauté. L'alerte n'est pas venue d'un système de surveillance, mais d'un utilisateur Reddit (PrinceOfNightSky) qui a remarqué que Microsoft Defender bloquait son installateur fraîchement téléchargé. La signature numérique indiquait « Zipline LLC » au lieu de « AppWork GmbH ». L'équipe AppWork a confirmé, mis le site hors ligne pour investigation dans les heures qui ont suivi, puis publié un rapport d'incident détaillé. Le site est revenu en ligne dans la nuit du 8 au 9 mai avec des liens vérifiés.\r\n\r\nPourquoi c'est systémique\r\n\r\nÀ première vue, c'est un incident isolé : une faille CMS, une équipe qui patche, le service revient. Vu de loin, ça ressemble à un mauvais quart d'heure. Mais en prenant un peu de recul, le schéma est troublant.\r\n\r\nCPUID, début avril 2026. Le site officiel de l'éditeur de CPU-Z est compromis, des installateurs piégés sont distribués pendant plusieurs jours.\r\n\r\nDAEMON Tools, début mai 2026. Même schéma : compromission du site officiel, substitution d'installateurs, plusieurs versions infectées (12.5.0.2421 à 12.5.0.2434) distribuées avant détection.\r\n\r\nJDownloader, 6–7 mai 2026. Toujours le même schéma.\r\n\r\nTrois compromissions d'éditeurs logiciels en cinq semaines, exactement sur le même schéma : pas d'intrusion dans l'infrastructure de build, pas de modification du code source, pas de vol de certificat de signature de l'éditeur. À chaque fois, le maillon faible est le CMS qui sert la page de téléchargement. Ce qu'on attaque, ce n'est pas le logiciel ; c'est le panneau publicitaire qui pointe vers le logiciel.\r\n\r\nCette mécanique est intéressante parce qu'elle déjoue à peu près toutes les défenses « modernes » de la chaîne d'approvisionnement.\r\n\r\nLa signature de code ne protège pas. Le binaire légitime de JDownloader est toujours signé proprement par AppWork GmbH. Mais le binaire malveillant servi à sa place est signé, lui aussi — par un autre éditeur (Zipline LLC, The Water Team), avec des certificats vraisemblablement volés ou achetés au marché noir. La signature certifie que le fichier vient bien de celui qui l'a signé ; elle ne certifie pas que c'est le bon fichier.\r\n\r\nLe HTTPS ne protège pas. La page de téléchargement est servie en HTTPS valide, depuis le bon domaine, avec le bon certificat. Le navigateur n'a aucune raison de tiquer.\r\n\r\nLes mises à jour in-app sont, elles, protégées. AppWork le souligne : chaque mise à jour livrée par le mécanisme intégré de JDownloader est signée RSA et vérifiée cryptographiquement, indépendamment du site web. Ce canal n'a pas été touché. C'est tout le paradoxe : les utilisateurs qui mettaient à jour JDownloader depuis l'application elle-même n'ont rien risqué ; ceux qui sont allés sur le site officiel pour le télécharger « proprement » sont les seuls exposés.\r\n\r\nLes paquets distribués sont protégés. Flatpak, Snap, Winget, le JAR principal — tout ce qui passe par une chaîne d'approvisionnement où l'intégrité est vérifiée par checksum hors site est resté propre. AppWork le résume sans détour : « Winget/Flatpak/Snap infra is outside of our reach — files downloaded by those are hosted on other infra and secured by sha256 checksums that are unchanged. »\r\n\r\nAutrement dit, plus le canal est court et naïf, plus il est vulnérable. Le téléchargement direct depuis un site web est le canal le plus naïf qui soit : on fait confiance au CMS, point. Tout l'effort de sécurisation de l'écosystème logiciel — signatures, builds reproductibles, SBOMs, attestations de provenance — porte sur la chaîne de production et la chaîne de distribution centralisée. Le maillon « page HTML qui dit clique ici », lui, est resté tel qu'il était en 2005.\r\n\r\nComment vérifier si on est touché\r\n\r\nLa fenêtre est étroite, donc le filtrage est simple. Trois questions, dans l'ordre :\r\n\r\n1. L'installateur a-t-il été récupéré entre le 6 mai 2026 (00 h 01 UTC) et le 7 mai 2026 (17 h 06 UTC) ?\r\n2. S'agit-il du lien « Download Alternative Installer » Windows ou du script shell Linux depuis ?\r\n3. Le fichier a-t-il été exécuté ?\r\n\r\nTrois oui → traiter la machine comme compromise. N'importe quel non dans la liste → aucun risque lié à cet incident. Une installation pré-existante mise à jour automatiquement, un paquet Flatpak/Snap/Winget, le JAR, la version macOS : rien à craindre.\r\n\r\nSous Windows\r\n\r\nLe contrôle de référence, c'est la signature numérique. Clic droit sur l'installateur → Propriétés → onglet Signatures numériques. La valeur attendue est . Toute autre signature (notamment Zipline LLC ou The Water Team), ou l'absence de signature, désigne un fichier malveillant.\r\n\r\nEn PowerShell :\r\n\r\n\r\n\r\nSi n'est pas ou si le certificat ne contient pas , ne pas exécuter.\r\n\r\nSous Linux\r\n\r\nTrois artefacts sont à chercher en post-exécution :\r\n\r\n\r\n\r\nL'apparition de l'un de ces trois éléments suffit à confirmer l'infection. Pour aller plus loin, un coup d'œil au trafic sortant vers les trois domaines C2 (, , ) dans les logs DNS ou via permet de confirmer l'activité du malware.\r\n\r\nSi le script installateur traîne encore quelque part, sa signature est sans ambiguïté : taille de 7 934 496 octets, SHA-256 commençant par .\r\n\r\nEn cas de compromission confirmée\r\n\r\nLa position officielle d'AppWork est sans nuance : réinstallation complète du système. Un RAT modulaire avec persistance SUID-root et exécution arbitraire de code Python depuis un C2 n'est pas quelque chose qu'on retire avec un antivirus. Il faut considérer que tout secret qui a transité sur la machine est compromis — mots de passe saisis au clavier, clés SSH, jetons API, cookies de session, configurations cloud — et les faire tous tourner après réinstallation, depuis une autre machine saine.\r\n\r\nCe que ça change pour qui s'auto-héberge\r\n\r\nL'incident JDownloader est un exemple éclairant pour qui exploite ses propres services exposés sur Internet — un Forgejo, un reverse proxy, un site personnel. La leçon n'est pas vraiment côté utilisateur (la procédure de détection plus haut suffit), elle est côté opérateur.\r\n\r\nLe CMS de JDownloader n'a probablement pas été ciblé pour ses qualités intrinsèques. C'est un dommage collatéral d'un schéma plus large : tout site qui distribue un binaire avec un nombre significatif d'utilisateurs devient une cible rentable, et le CMS public est souvent la pièce la moins surveillée du dispositif. On sécurise le serveur Git, le pipeline de build, la signature des paquets — et on laisse tourner un CMS qui n'a pas été patché depuis huit mois parce qu'il « ne sert qu'à afficher la page d'accueil ».\r\n\r\nQuelques principes opérationnels qui en découlent.\r\n\r\nSéparer le canal de publication du canal de vérification. AppWork a eu raison sur un point essentiel : leurs mises à jour in-app passent par une infrastructure indépendante du site web, avec signature RSA vérifiée côté client. Quand on auto-héberge, ça se traduit par : ne jamais utiliser le même serveur pour distribuer un binaire et publier son empreinte. Le checksum doit vivre ailleurs — dans un dépôt Git séparé, sur un domaine différent, idéalement sur une infrastructure qu'on n'administre pas soi-même.\r\n\r\nSurveiller la dérive du contenu publié. Une simple vérification quotidienne du hash des pages publiques (un cron qui calcule le SHA-256 des URL critiques et alerte en cas de changement non planifié) aurait détecté la compromission de JDownloader en moins d'une heure. C'est le genre de surveillance qu'aucune solution commerciale ne propose nativement, et qui s'écrit en quinze lignes de bash.\r\n\r\nPatcher le CMS avec la même rigueur que l'OS. L'automatisation des mises à jour applicatives reste sous-investie, surtout pour les outils « périphériques » (CMS, wiki, formulaire de contact). Une mise à jour automatique de niveau correctif n'est pas plus risquée qu'une mise à jour du noyau, et elle évite ce type de scénario.\r\n\r\nAuditer les ACL régulièrement. La faille exploitée ici permettait de modifier les ACL sans authentification. C'est l'équivalent CMS d'un répertoire dans un coin du système. Un audit périodique des permissions sur les pages publiques fait partie du minimum syndical pour un service exposé.\r\n\r\nEn résumé\r\n\r\nJDownloader n'a pas été cassé. Son code source est intact, son infrastructure de build est intacte, ses paquets officiels distribués via Flatpak ou Snap sont intacts, ses mises à jour internes sont intactes. Ce qui a été cassé, c'est le panneau qui dit où aller chercher le binaire.\r\n\r\nC'est une mécanique élégante du point de vue de l'attaquant, et inquiétante du point de vue de l'opérateur. Elle illustre quelque chose que l'incident NPM avait déjà mis en lumière dans un autre registre : la chaîne d'approvisionnement logicielle n'est pas une chaîne, c'est un réseau, et les points faibles ne sont jamais là où on les attend. On peut investir massivement dans la sécurité du code, du build et de la signature ; si la page web qui sert le lien reste un Wordpress non patché derrière un nom de domaine prestigieux, tout cet investissement passe à côté.\r\n\r\nLe rôle de l'opérateur en 2026, ce n'est plus de protéger le code. C'est de protéger chaque maillon qui sert à dire au monde où trouver le code — et de partir du principe que ce maillon-là sera le prochain à céder.\r\n\r\nLiens & sources\r\n\r\nJDownloader site hacked to replace installers with Python RAT malware | BleepingComputer\r\n\r\nRapport d'incident officiel | jdownloader.org\r\n\r\nJDownloader Website Supply Chain Attack | Rescana\r\n\r\nLe site officiel de JDownloader compromis | IT-Connect"},"score":0.75,"snippet":"À propos de l'incident de sécurité affectant le site officiel jdownloader.org les 6 et 7 mai 2026.\r\n\r\nJDownloader expliqué simplement\r\n\r\nJDownloader est un gestionnaire de téléchargements écrit en Java, distribué gratuit…","tier":2},{"article":{"uuid":"104a8694-4268-4e0a-99c7-e7ecfd47af1e","slug":"auto-heberger-son-serveur-mail-en-2026","title":"Auto-héberger son serveur mail en 2026","category":"informatique","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2026-05-12 08:35","created_at":"2026-05-12 08:38:14","updated_at":"2026-05-12 08:40:06","plain":"Survivre aux règles de Gmail, Outlook et consorts\r\nContexte — Cet article de Clubic (lien) rappelle une vérité technique : SMTP date de 1982, n'a aucune sécurité native, et toutes les \"rustines\" (SPF, DKIM, DMARC, MTA-STS, DANE) ont été conçues par Yahoo, Cisco, Microsoft, Google. Depuis février 2024 (Google) et mai 2025 (Microsoft), tout expéditeur dépassant 5000 mails/jour vers Gmail/Outlook doit configurer SPF + DKIM + DMARC, maintenir un taux de spam < 0,1 %, et fournir un lien de désinscription en un clic.\r\nMais même en dessous de 5000/jour, ces règles s'appliquent en pratique : sans elles, ton mail finit en spam ou est rejeté. Ce dossier décrit comment monter son propre serveur mail tout en passant à travers ces filtres.\r\n--\r\n\r\nSommaire\r\n\r\n1. Avant de commencer : est-ce vraiment une bonne idée ?\r\n2. Prérequis techniques\r\n3. Architecture cible\r\n4. Choix du fournisseur et de l'IP\r\n5. Configuration DNS complète\r\n6. Installation du stack mail\r\n7. SPF, DKIM, DMARC : les rustines obligatoires\r\n8. MTA-STS, TLS-RPT, DANE : aller plus loin\r\n9. PTR (reverse DNS) et HELO\r\n10. Warmup d'IP : la phase la plus délicate\r\n11. Postmaster Tools, SNDS, FBL\r\n12. Liste de désinscription en un clic (RFC 8058)\r\n13. Anti-spam entrant et hygiène\r\n14. Monitoring, logs, alertes\r\n15. Que faire quand Gmail rejette quand même ?\r\n16. Checklist finale avant mise en prod\r\n17. Annexes : commandes utiles\r\n--\r\n\r\n1. Avant de commencer : est-ce vraiment une bonne idée ?\r\n\r\nL'auto-hébergement mail est techniquement possible, mais c'est probablement le service le plus pénible à maintenir en 2026. Avant de te lancer, lis ça :\r\n\r\nCe qui marche bien en auto-hébergé :\r\nRecevoir du mail (presque tout le monde te livre).\r\nEnvoyer vers d'autres serveurs auto-hébergés ou pros bien configurés.\r\nGarder le contrôle sur tes données, tes alias, tes domaines.\r\n\r\nCe qui est dur :\r\nEnvoyer vers Gmail / Outlook / Yahoo / iCloud sans atterrir en spam.\r\nSortir d'une blacklist une fois dedans.\r\nMaintenir un score de réputation IP correct sur la durée.\r\nSurvivre à un changement unilatéral des règles côté gros acteurs (cf. février 2024 et mai 2025).\r\n\r\nStratégie réaliste recommandée :\r\nRéception entrante : auto-hébergée à 100 %. Aucun risque, full contrôle.\r\nEnvoi sortant : deux options, selon ton volume et ton tolérance au risque.\r\nOption A — Pure auto-hébergée : tu envoies directement depuis ton serveur. Faisable, mais demande un warmup, une IP propre, et un suivi continu.\r\nOption B — Smart host sortant : tu envoies via un relais réputé (un autre de tes serveurs avec une IP qui a déjà sa réputation, ou un service type Mailjet/Sendgrid/SMTP2GO en bas volume gratuit). Tes mails sortent depuis l'IP du relais, qui a déjà sa réputation faite. C'est un compromis : tu perds une partie de la souveraineté technique, mais tu gagnes énormément en délivrabilité.\r\n\r\nLe reste du dossier suit l'option A — tout en t'expliquant comment basculer en B si nécessaire.\r\n--\r\n\r\n2. Prérequis techniques\r\nÉlément | Détail |\r\n---|---|\r\nDomaine | À toi, registrar peu importe, mais avec DNSSEC activable (cf. §8 pour DANE). |\r\nServeur | VPS ou dédié, 2 vCPU / 4 Go RAM minimum, Debian 12+ ou Ubuntu 24.04 LTS. |\r\nIP fixe v4 | Indispensable. IP \"résidentielle\" ou IP de datacenter récemment recyclée = exclues. |\r\nIP fixe v6 | Recommandée, mais désactivable si l'IPv6 du fournisseur est blacklistée. |\r\nPTR / reverse DNS | Modifiable par toi. Si l'hébergeur ne te le permet pas, change d'hébergeur. |\r\nPorts | 25, 465, 587, 993, 4190 ouverts sortants ET entrants. Le port 25 sortant est bloqué chez beaucoup d'hébergeurs grand public (OVH résidentiel, Free, etc.) : vérifie avant. |\r\nTLS | Certificat valide (Let's Encrypt suffit). |\r\n\r\nCompétences attendues : Linux en ligne de commande, DNS (champs A/AAAA/MX/TXT/SRV/CAA/TLSA), notion de TLS, lecture de logs et .\r\n--\r\n\r\n3. Architecture cible\r\n\r\nUn stack standard, éprouvé, en logiciels libres :\r\n\r\n\r\n\r\nComposants :\r\nPostfix : MTA. Reçoit, route, envoie le SMTP.\r\nDovecot : serveur IMAP/POP3, livraison locale (LMTP), authentification SASL pour Postfix, gestion Sieve (filtres).\r\nRspamd : antispam moderne, fait aussi la vérification SPF/DKIM/DMARC entrante, le greylisting, et — option recommandée — la signature DKIM sortante (en remplacement d'OpenDKIM).\r\nLet's Encrypt (certbot) : TLS.\r\n(Optionnel) Roundcube ou SnappyMail : webmail.\r\n\r\nAlternative tout-en-un : Mailcow ou Mailu, basés sur Docker, qui empaquètent tout ça avec une interface admin. Si tu préfères ne pas tout configurer à la main, c'est légitime — la majorité des règles DNS et de délivrabilité de ce dossier restent identiques.\r\n--\r\n\r\n4. Choix du fournisseur et de l'IP\r\n\r\nLe choix de l'hébergeur conditionne la moitié de ta délivrabilité. Avant de prendre un VPS :\r\n\r\n1. Le port 25 sortant est-il ouvert ? Beaucoup d'hébergeurs le bloquent par défaut pour limiter le spam (Hetzner l'ouvre sur demande, OVH l'ouvre selon le produit, Scaleway l'ouvre selon le compte). Pose la question au support avant de payer.\r\n2. Le PTR est-il configurable ? Si non, change.\r\n3. L'IP a-t-elle été utilisée par un spammeur ? Avant d'acheter le VPS, demande l'IP qu'on te donnera. Vérifie sur :\r\nmxtoolbox.com/blacklists.aspx\r\nmultirbl.valli.org\r\ntalosintelligence.com (Cisco)\r\nsenderscore.org\r\n \r\n Si l'IP est listée sur Spamhaus, Barracuda, SORBS, SpamCop, demande à l'hébergeur de te l'échanger ou prends un autre VPS. Une fois listée, tu vas y passer des semaines.\r\n4. Réputation du subnet (). Même si ton IP est propre, si le est pourri (beaucoup de spammeurs voisins), Gmail va te traiter avec méfiance. Vérifie sur senderscore.org en saisissant ton IP — le score du subnet apparaît.\r\n\r\nHébergeurs réputés corrects pour le mail : Hetzner, OVH (gamme dédiée, pas SoYouStart), Scaleway, Infomaniak (en VPS), Netcup. À éviter pour de l'envoi : DigitalOcean (subnets souvent grillés), Linode/Akamai (idem), AWS EC2 (le port 25 est limité par défaut, et la rate-limit est costaude).\r\n--\r\n\r\n5. Configuration DNS complète\r\n\r\nPour un domaine avec un serveur mail sur à l'IP (et en v6) :\r\n\r\n\r\n\r\nDétails dans les sections dédiées plus bas.\r\n\r\nÀ ne pas oublier : l'enregistrement PTR (reverse DNS) se configure chez ton hébergeur, pas dans ta zone DNS. Il doit pointer . C'est traité au §9.\r\n--\r\n\r\n6. Installation du stack mail\r\n\r\nSur Debian 12. Ce qui suit est volontairement condensé — pour une configuration ligne par ligne, suis le tutoriel de référence de Workaround.org qui est l'étalon depuis 20 ans.\r\n\r\n\r\n\r\nPostfix : configuration minimale-mais-saine\r\n\r\n\r\n\r\nDovecot, Rspamd\r\n\r\nCes composants demandent leurs propres fichiers de configuration. Renvoi explicite vers les tutos qui font autorité :\r\nWorkaround.org / ISPmail : https://workaround.org/ispmail/ — référence francophone et anglophone, mise à jour à chaque version Debian.\r\nRspamd quickstart : https://www.rspamd.com/doc/tutorials/quickstart.html\r\nDovecot wiki : https://doc.dovecot.org/\r\n\r\nSi tu veux gagner du temps, Mailcow () est aujourd'hui la solution clé-en-main la plus fiable.\r\n--\r\n\r\n7. SPF, DKIM, DMARC : les rustines obligatoires\r\n\r\nSans ces trois enregistrements correctement configurés, Gmail et Outlook rejetteront ou marqueront en spam la majorité de tes messages — peu importe ton volume.\r\n\r\nSPF (Sender Policy Framework)\r\n\r\nDéclare qui a le droit d'envoyer du mail pour ton domaine.\r\n: autorise les serveurs listés dans le MX du domaine.\r\n: rejet strict de tout le reste. Indispensable pour la réputation. Ne jamais utiliser (softfail) en prod : Gmail aujourd'hui considère comme un signal faible.\r\n\r\nSi tu envoies aussi via un relais externe (smart host) : ajoute son , ex. .\r\n\r\nLimite : un enregistrement SPF doit tenir en 10 lookups DNS maximum. Au-delà, il est invalide. Vérifie avec https://www.kitterman.com/spf/validate.html.\r\n\r\nDKIM (DomainKeys Identified Mail)\r\n\r\nSigne chaque mail sortant avec une clé privée. Le destinataire vérifie la signature via la clé publique publiée en DNS.\r\n\r\nGénération de la clé (Rspamd, sélecteur , clé 2048 bits) :\r\n\r\n\r\n\r\nLe fichier contient l'enregistrement DNS à publier :\r\n\r\n\r\n\r\nConfiguration Rspamd () :\r\n\r\n\r\n\r\nRecharge : .\r\n\r\nVérification : envoie un mail à check-auth@verifier.port25.com, tu reçois un rapport complet SPF/DKIM/DMARC en retour. Ou utilise https://www.mail-tester.com/ (note sur 10).\r\n\r\nDMARC (Domain-based Message Authentication, Reporting and Conformance)\r\n\r\nDit aux serveurs distants quoi faire en cas d'échec SPF/DKIM, et te renvoie des rapports sur ce qui passe et ce qui rate.\r\n: surveillance seule, à utiliser pendant 2-4 semaines en démarrage pour collecter les rapports sans pénaliser.\r\n: mise en spam des mails non authentifiés. Cible normale.\r\n: rejet pur. À atteindre en cible finale, après avoir vérifié 4 semaines de rapports propres.\r\n: adresse pour les rapports agrégés (quotidiens).\r\n: rapports forensiques (par message). Optionnel.\r\n: alignement strict — le domaine de signature DKIM et le domaine SPF doivent exactement correspondre au domaine .\r\n\r\nLecture des rapports DMARC : ils arrivent en XML, illisibles. Utilise un parseur :\r\nPostmark DMARC Monitoring (gratuit, agrège les rapports dans une UI).\r\nparsedmarc (auto-hébergeable, envoie dans Elasticsearch/Splunk/Grafana).\r\n--\r\n\r\n8. MTA-STS, TLS-RPT, DANE : aller plus loin\r\n\r\nCes standards sécurisent le transport entre serveurs (chiffrement TLS forcé). Gmail les regarde, Microsoft aussi. Pas obligatoires, mais ils boostent ta réputation.\r\n\r\nMTA-STS\r\n\r\nForce les serveurs distants à utiliser TLS pour t'envoyer des mails. Trois éléments :\r\n\r\n1. Enregistrement DNS TXT :\r\n\r\n\r\n2. Sous-domaine servant un fichier en HTTPS à :\r\n\r\n\r\n est la cible. En démarrage, mets pendant 1-2 semaines.\r\n\r\n3. Certificat TLS valide sur ce sous-domaine (déjà fait via certbot au §6).\r\n\r\nTLS-RPT\r\n\r\nDemande aux serveurs distants de t'envoyer des rapports en cas d'échec TLS.\r\n\r\n\r\n\r\nDANE (DNS-based Authentication of Named Entities)\r\n\r\nEncore plus solide que MTA-STS, mais nécessite DNSSEC activé sur ton domaine. Si ton registrar ne supporte pas DNSSEC, oublie DANE.\r\n\r\nDANE publie un hash du certificat TLS dans un enregistrement TLSA :\r\n\r\n\r\n\r\nOu plus simplement avec https://www.huque.com/bin/gentlsa :\r\n\r\n\r\n\r\nVérification globale de tout ton setup TLS+DANE : https://internet.nl/mail/ (excellent, recommandé).\r\n--\r\n\r\n9. PTR (reverse DNS) et HELO\r\n\r\nLe PTR est probablement la cause la plus fréquente de rejet par Gmail/Outlook chez les nouveaux auto-hébergés.\r\n\r\nRègle absolue : , et tout doit être un FQDN cohérent.\r\n\r\nConfigure le PTR dans le panneau de ton hébergeur (chez OVH : \"IP\" → \"Reverse DNS\") :\r\n\r\n\r\nVérifie :\r\n\r\n\r\nDans Postfix, et c'est ce qui est annoncé en HELO. Cohérence garantie.\r\n--\r\n\r\n10. Warmup d'IP : la phase la plus délicate\r\n\r\nUne IP neuve = pas de réputation = défiance maximale des gros acteurs. Tu ne peux pas envoyer 1000 mails le jour 1 sans te griller.\r\n\r\nPlan de warmup sur 4 à 6 semaines\r\nSemaine | Volume max/jour vers Gmail+Outlook | Volume max/jour total | Contenu |\r\n---|---|---|---|\r\n1 | 20-50 | 100 | Mails à toi-même, comptes test sur Gmail/Outlook/Yahoo. Réponds-y, marque \"non spam\" si en spam. |\r\n2 | 100 | 300 | Cercle proche qui sait répondre / interagir. |\r\n3 | 300 | 1000 | Élargissement progressif. |\r\n4 | 800 | 3000 | Ouvre aux usages normaux. |\r\n5+ | 2000+ | volume cible | Stable. |\r\n\r\nRègles d'or pendant le warmup :\r\nPas de mailing list, pas de notifs automatiques en masse. Privilégie des mails 1-à-1 conversationnels.\r\nDemande aux destinataires de répondre — un mail avec réponse a 100x le poids d'un mail ouvert silencieusement.\r\nAucun lien raccourci, aucun pixel de tracking, aucune image lourde.\r\nStop net si ton score Senderscore baisse ou si Gmail Postmaster Tools (cf. §11) montre du rouge.\r\n\r\nSi tu as un volume immédiat à envoyer\r\n\r\nBascule en option B (smart host) le temps du warmup, puis rapatrie progressivement en interne en répliquant les volumes ci-dessus.\r\n--\r\n\r\n11. Postmaster Tools, SNDS, FBL\r\n\r\nLes gros acteurs te donnent des dashboards dédiés. Inscris-toi à tous, dès la création du domaine.\r\nService | Acteur | Usage |\r\n---|---|---|\r\nGoogle Postmaster Tools | Gmail | Réputation IP+domaine, taux de spam, authentification, encryption. Indispensable. |\r\nMicrosoft SNDS | Outlook/Hotmail | Smart Network Data Services, qualité de l'IP. |\r\nMicrosoft JMRP | Outlook | Junk Mail Reporting Program, FBL Microsoft. |\r\nYahoo CFL | Yahoo | Complaint Feedback Loop. |\r\nValidity Sender Score | Indépendant | Score sur 100, à surveiller. |\r\n\r\nConfigure les feedback loops (FBL) : quand un destinataire clique \"spam\", tu reçois une notification. Ça te permet de désinscrire l'utilisateur avant qu'il ne dégrade ta réputation.\r\n--\r\n\r\n12. Liste de désinscription en un clic (RFC 8058)\r\n\r\nExigence Google/Microsoft pour les expéditeurs en volume, mais à mettre en place dès le début même en bas volume.\r\n\r\nAjoute deux en-têtes à tous les mails non-strictement-personnels :\r\n\r\n\r\n\r\nL'URL HTTPS doit accepter une requête POST (pas seulement GET) avec dans le corps, et désinscrire immédiatement et silencieusement sans demander de confirmation.\r\n--\r\n\r\n13. Anti-spam entrant et hygiène\r\n\r\nUn serveur mail mal configuré côté entrée devient vite un relais de spam ou une cible. Configuration Rspamd minimale :\r\n\r\n\r\n\r\n\r\n\r\nActive aussi :\r\nVérification SPF/DKIM/DMARC entrante (par défaut activée dans Rspamd).\r\nRBL (Realtime Blackhole Lists) : Spamhaus ZEN, Barracuda. Attention à ne pas multiplier — 2 ou 3 RBL fiables suffisent.\r\nGreylisting : refuse temporairement les premiers contacts, ce qui élimine 80% du spam basique. Ne pas activer sur un domaine à fort volume transactionnel (gêne les notifs).\r\nBayes : laisse Rspamd apprendre via le dossier de Dovecot (signal / ).\r\n\r\nMises à jour : activé, redémarrage planifié, lecture des annonces sécu Postfix/Dovecot.\r\n--\r\n\r\n14. Monitoring, logs, alertes\r\n\r\nSans monitoring, tu découvres les problèmes par les utilisateurs. À mettre en place :\r\nLecture des logs : , , web UI de Rspamd sur .\r\nMétriques : exporter Postfix/Dovecot vers Prometheus + Grafana (, ).\r\nAlertes sur :\r\nFile d'attente Postfix > 50 messages ().\r\nScore Senderscore qui chute.\r\nApparition sur une RBL : surveillance automatisée par https://multirbl.valli.org/ ou via un script qui interroge plusieurs DNSBL en cron.\r\nÉchec TLS-RPT (rapport entrant signalant une connexion non chiffrée).\r\nRapports DMARC parsés régulièrement (cf. §7).\r\n--\r\n\r\n15. Que faire quand Gmail rejette quand même ?\r\n\r\nÇa arrive. Diagnostic dans l'ordre :\r\n\r\n1. Lis le code de rejet SMTP dans . Gmail renvoie des codes très explicites :\r\n→ contenu jugé spammy. Revois le contenu, ajoute du texte conversationnel, retire les liens douteux.\r\n→ tu as dépassé un seuil. Ralentis immédiatement, attends 24-48h, reprends doucement.\r\n→ ton DMARC ne passe pas. Revérifie SPF/DKIM/alignement.\r\n→ tu es sur une RBL. Va sur spamhaus.org/lookup/ pour vérifier et demander la sortie.\r\n2. Va dans Postmaster Tools (§11). Si \"IP reputation\" est rouge ou orange, regarde le contenu et le timing de tes envois récents.\r\n3. Test mail-tester : envoie à une adresse fournie par mail-tester.com, obtiens une note sur 10. Vise 10/10. Toute case manquante doit être corrigée.\r\n4. Sortie de blacklist : la plupart des RBL (Spamhaus, Barracuda) ont un formulaire de retrait. Spamhaus retire en quelques heures si tu corriges la cause. SORBS est plus lent. UCEPROTECT exige souvent de payer — ignore-la, peu de serveurs sérieux la consultent.\r\n5. Si rien ne marche, change d'IP. C'est parfois la seule issue. Demande à ton hébergeur une IP fraîche, refais un warmup.\r\n--\r\n\r\n16. Checklist finale avant mise en prod\r\n\r\nAvant d'envoyer le premier vrai mail :\r\n[ ] Domaine avec DNSSEC activé.\r\n[ ] IP testée sur 5+ blacklists, propre.\r\n[ ] Port 25 sortant ouvert et testé ().\r\n[ ] PTR configuré et cohérent avec le HELO.\r\n[ ] MX, A, AAAA, SPF, DKIM, DMARC publiés et validés via mxtoolbox.com.\r\n[ ] MTA-STS publié (mode au démarrage).\r\n[ ] TLS-RPT publié.\r\n[ ] DANE/TLSA publié (si DNSSEC OK).\r\n[ ] CAA publié.\r\n[ ] Test envoyé à : tout en .\r\n[ ] Test mail-tester.com : 10/10.\r\n[ ] Test internet.nl/mail/ : 100%.\r\n[ ] Inscription Postmaster Tools, SNDS, JMRP, Yahoo CFL.\r\n[ ] DMARC au démarrage, parser de rapports en place.\r\n[ ] List-Unsubscribe + List-Unsubscribe-Post implémentés.\r\n[ ] Plan de warmup affiché et respecté.\r\n[ ] Monitoring file d'attente + RBL en place.\r\n[ ] Backup chiffré des Maildir.\r\n\r\nAu bout de 4 semaines de rapports DMARC propres : passage à . Au bout de 8-12 semaines : .\r\n--\r\n\r\n17. Annexes : commandes utiles\r\n\r\n\r\n\r\nOutils web à mettre en favoris\r\nhttps://www.mail-tester.com/ — score sur 10\r\nhttps://internet.nl/mail/ — audit complet\r\nhttps://mxtoolbox.com/SuperTool.aspx — DNS, blacklists\r\nhttps://dmarcian.com/dmarc-inspector/ — vérif DMARC\r\nhttps://www.kitterman.com/spf/validate.html — vérif SPF\r\nhttps://postmaster.google.com/ — Google Postmaster\r\nhttps://senderscore.org/ — réputation IP\r\n\r\nDocumentation de référence\r\nISPmail / Workaround.org — https://workaround.org/ispmail/ — le tutoriel le plus complet et tenu à jour, par version Debian.\r\nMailcow docs — https://docs.mailcow.email/ — pour la version conteneurisée clé-en-main.\r\nPostfix officiel — https://www.postfix.org/documentation.html\r\nRspamd docs — https://www.rspamd.com/doc/\r\nRFCs essentielles** : 5321 (SMTP moderne), 7208 (SPF), 6376 (DKIM), 7489 (DMARC), 8461 (MTA-STS), 8460 (TLS-RPT), 7672 (DANE-SMTP), 8058 (One-Click Unsubscribe).\r\n--\r\n\r\nL'auto-hébergement mail en 2026 reste possible, mais c'est devenu un sport : les règles changent, les gros acteurs durcissent leurs critères, et l'écosystème pousse vers la centralisation. Si tu réussis le warmup et tiens 6 mois sans incident, tu as gagné — mais ne baisse pas la garde, un changement unilatéral de Google peut survenir à tout moment, comme en février 2024."},"score":0.75,"snippet":"Survivre aux règles de Gmail, Outlook et consorts\r\nContexte — Cet article de Clubic (lien) rappelle une vérité technique : SMTP date de 1982, n'a aucune sécurité native, et toutes les "rustines" (SPF, DKIM, DMARC, MTA-ST…","tier":2},{"article":{"uuid":"093711bf-4e60-4ea8-ba73-928d2d67776c","slug":"certificats-let-s-encrypt-a-6-jours-faut-il-sauter-le-pas","title":"Certificats Let's Encrypt à 6 jours : faut-il sauter le pas ?","category":"actualité","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2026-05-07 22:46","created_at":"2026-05-12 08:47:27","updated_at":"2026-05-12 08:59:58","plain":"Guide DevOps / WebOps pour comprendre les certificats à durée de vie courte () et décider si vous devez migrer.\r\n--\r\n\r\nTL;DR\r\n\r\nLet's Encrypt propose désormais au grand public des certificats valides 6 jours (profil ), en plus du classique 90 jours. Pour les certificats sur adresse IP, c'est même obligatoire. La question n'est pas \"est-ce que c'est bien ?\" — techniquement oui — mais \"est-ce que mon infra est prête ?\". Si votre renouvellement automatique fonctionne sans accroc depuis 6 mois, foncez. Sinon, fiabilisez d'abord, migrez ensuite.\r\n--\r\n\r\n1. De quoi on parle\r\n\r\nDepuis janvier 2026, Let's Encrypt émet en disponibilité générale deux nouveautés couplées : les certificats pour adresses IP, et les certificats à durée de vie de 6 jours via un nouveau profil ACME nommé . Certbot 4.0 a introduit le flag pour les sélectionner, et Certbot 5.3 a ajouté pour demander un cert sur IP.\r\n\r\nConcrètement, un certificat a une validité de 6 jours au lieu de 90. Tout le reste — chaîne de confiance, algorithmes, format — est identique. Pour le navigateur, c'est un certificat Let's Encrypt standard.\r\n\r\nLes profils disponibles\r\nProfil | Durée | Usage |\r\n---|---|---|\r\n(défaut) | 90 jours | Tout le monde, par défaut |\r\n| 6 jours | Adopters précoces, certs sur IP (obligatoire) |\r\n| 90 jours | Variante optimisée serveur web (sans clientAuth) |\r\n--\r\n\r\n2. Pourquoi Let's Encrypt pousse vers le court\r\n\r\nQuatre raisons techniques, par ordre d'importance.\r\n\r\n2.1 La révocation TLS est cassée — autant l'éviter\r\n\r\nC'est le vrai sujet. Le mécanisme de révocation des certificats (CRL, OCSP) n'a jamais fonctionné correctement à grande échelle :\r\nOCSP soft-fail : si le serveur OCSP est injoignable, la plupart des navigateurs acceptent quand même le certificat. Un attaquant qui contrôle le réseau bloque l'OCSP et le cert révoqué passe.\r\nOCSP stapling mal configuré sur beaucoup de serveurs.\r\nCRLite, OneCRL : couvertures partielles, déploiement client incohérent.\r\nOCSP retiré : Let's Encrypt a arrêté OCSP en 2025, justement parce que ça ne servait quasiment à rien tout en posant des problèmes de vie privée.\r\n\r\nAvec un cert à 6 jours, la révocation devient cosmétique : on attend l'expiration. La fenêtre d'exploitation d'une clé compromise passe de plusieurs semaines (cert 90 jours, OCSP douteux) à quelques jours maximum.\r\n\r\n2.2 Réduire la fenêtre de compromission\r\n\r\nSi votre clé privée fuite (backup mal protégé, faille serveur, employé qui part avec une copie, vulnérabilité type Heartbleed), l'attaquant peut usurper votre site tant que le cert est valide. À 90 jours, c'est trois mois d'exposition dans le pire cas. À 6 jours, c'est une semaine.\r\n\r\nC'est encore plus critique pour les certs sur IP : une IP peut changer de propriétaire (cloud, VPS recyclé, réattribution FAI). Un cert long pour une IP qui ne vous appartient plus, c'est un risque que LE refuse de prendre — d'où l'obligation du profil court pour cet usage.\r\n\r\n2.3 Forcer une automatisation propre\r\n\r\nPersonne ne renouvelle un cert à la main tous les 6 jours. C'est mécaniquement infaisable. Le profil est donc un filtre qualité : si votre renouvellement n'est pas blindé, vous le saurez vite.\r\n\r\nL'effet de bord positif : ça élimine les pannes classiques type \"le cert a expiré parce que le cron était cassé depuis trois mois et personne ne s'en est rendu compte\". À 6 jours, un cron cassé devient visible immédiatement.\r\n\r\n2.4 Agilité cryptographique\r\n\r\nSi une vulnérabilité majeure impose de déprécier un algorithme en urgence (RSA, transition post-quantique, faille découverte sur SHA-256), un parc avec des certs à 6 jours bascule en une semaine. Un parc 90 jours met trois mois. C'est la raison qui motive aussi le CA/Browser Forum à pousser globalement vers des durées plus courtes (45 jours d'ici 2029 dans la baseline).\r\n--\r\n\r\n3. Pourquoi vous pourriez ne pas migrer\r\n\r\nSoyons honnêtes : pour la plupart des infras web classiques, le 90 jours suffit largement. Le 6 jours a des coûts réels.\r\n\r\n3.1 Pression sur le rate limiting\r\n\r\nLet's Encrypt limite à 300 nouveaux certificats par compte par 3 heures et 5 duplicatas de cert par semaine. Avec des certs 90 jours, vous renouvelez 4 fois par an. Avec des 6 jours, c'est 60 fois par an et par cert. Si vous avez 50 services derrière 50 certs distincts, vous explosez votre budget de requêtes ACME.\r\n\r\nMitigation : regrouper les domaines dans des certs SAN (un seul cert pour , , plutôt que trois certs).\r\n\r\n3.2 Dépendance critique au CA et au réseau\r\n\r\nÀ 90 jours, si Let's Encrypt est down 48h, vous ne le remarquez même pas. À 6 jours, une panne de 48h sur LE et votre fenêtre de renouvellement (typiquement à 1/3 de la durée restante, soit 2 jours), et votre cert expire. Vos services tombent.\r\n\r\nConséquences concrètes :\r\nIl faut un monitoring sérieux de l'expiration des certs (Prometheus blackbox exporter, , etc.).\r\nIl faut un fallback : second client ACME, second account, ou cert de secours d'une autre CA.\r\nIl faut absolument que la résolution DNS et le port 80/443 sortants depuis votre serveur soient fiables.\r\n\r\n3.3 Charge sur les systèmes de déploiement\r\n\r\nChaque renouvellement déclenche : appel ACME, validation HTTP-01 ou DNS-01, écriture des fichiers, rechargement du serveur web (Nginx, Apache, HAProxy, etc.). À 60 fois par an au lieu de 4, ça multiplie par 15 le nombre de reloads.\r\n\r\nSur un serveur web basique, un est gratuit. Sur des architectures plus complexes (load balancers stateful, terminations TLS distribuées, certs poussés vers un CDN, configs multi-nœuds avec Ansible/Salt), chaque renouvellement déclenche une cascade. À évaluer.\r\n\r\n3.4 Logs, audit, conformité\r\n\r\nCertains contextes réglementaires demandent une traçabilité des certificats (PCI-DSS, ISO 27001, HDS). Multiplier par 15 le volume d'événements de renouvellement à archiver et auditer, ça représente du stockage et du tooling à adapter.\r\n\r\n3.5 Le cas \"monitoring TLS externe\"\r\n\r\nSi vous avez des outils tiers (uptime monitors, scanners de conformité) qui vérifient l'expiration de vos certs, ils risquent de hurler en permanence : un cert qui montre toujours \"expire dans 6 jours\" déclenche les alertes \"cert expirant bientôt\" sur la plupart des outils mal configurés. Il faut soit ajuster les seuils, soit changer d'outil.\r\n--\r\n\r\n4. Décision : grille de lecture\r\nSituation | Recommandation |\r\n---|---|\r\nServeurs web classiques, renouvellement Certbot qui marche, < 20 certs | Restez en 90 jours. Le bénéfice marginal ne justifie pas le risque. |\r\nVous gérez des certs sur IP | Pas le choix : est obligatoire. |\r\nArchitecture critique avec rotation de clés agressive (banque, santé, infra publique) | Migrez. Le 6 jours est aligné avec vos exigences de sécurité. |\r\nInfra dev/staging interne | Excellent terrain de test. Migrez d'abord ici pour valider votre pipeline. |\r\nVous avez déjà eu une expiration cert non détectée en prod | Ne migrez pas tout de suite. Fiabilisez d'abord le monitoring et le renouvellement, puis migrez. Sinon vous transformez un incident annuel en incident hebdomadaire. |\r\nVous publiez via reverse proxy unique (un seul cert SAN pour plusieurs services) | Bon candidat. Un seul renouvellement à fiabiliser. |\r\nVous avez un parc hétérogène (Apache + Nginx + HAProxy + Traefik...) avec hooks custom | Auditez chaque hook avant de migrer. C'est là que ça casse. |\r\n--\r\n\r\n5. Comment migrer concrètement (Certbot)\r\n\r\n5.1 Pré-requis\r\n\r\nAvant tout :\r\n\r\n1. Certbot 4.0+ pour , 5.3+ pour , 5.4+ pour avec IP.\r\n2. Un renouvellement automatique opérationnel et vérifié (timer systemd ou cron actif, testé avec ).\r\n3. Un monitoring d'expiration des certs en place. Si vous n'en avez pas, installez-le avant de migrer.\r\n4. Un hook de reload du serveur web qui fonctionne ().\r\n\r\n5.2 Test sur le staging Let's Encrypt\r\n\r\n\r\n\r\nVérifier que le cert obtenu a bien une durée de 6 jours :\r\n\r\n\r\n\r\n5.3 Renouvellement plus fréquent\r\n\r\nPar défaut, Certbot renouvelle quand il reste 1/3 de la durée. Pour un cert 6 jours, ça veut dire renouveler à 2 jours restants. Ça laisse peu de marge en cas de panne. Vous pouvez forcer un renouvellement plus tôt :\r\n\r\n\r\n\r\nLe timer Certbot tourne deux fois par jour par défaut, ce qui est suffisant. Pas besoin de l'accélérer.\r\n\r\n5.4 Cas d'un certificat sur IP\r\n\r\n\r\n\r\nNote importante : Certbot ne sait pas encore installer automatiquement les certs IP dans Nginx ou Apache. Il faut éditer la config manuellement pour pointer vers et , et configurer un pour le reload.\r\n\r\n5.5 Plan de bascule recommandé\r\n\r\n1. Semaine 1-2 : un domaine non critique (un sous-domaine de test, un service interne) en . Surveillez les renouvellements.\r\n2. Semaine 3-4 : étendez à la moitié de votre dev/staging.\r\n3. Semaine 5-6 : migration progressive en prod, en commençant par les services les moins critiques.\r\n4. À tout moment : possibilité de retour arrière en supprimant du fichier de config Certbot dans .\r\n--\r\n\r\n6. Pièges à éviter\r\nNe migrez pas tout en même temps. Si votre hook de reload a un bug, vous le découvrez sur un seul service, pas sur 50.\r\nNe désactivez pas le monitoring d'expiration sous prétexte que c'est automatisé. L'automatisation peut casser silencieusement. Un check externe qui hurle à J-2 reste indispensable.\r\nAttention aux secrets stockés dans des configs autres que Certbot. Si vous avez des certs poussés manuellement vers un CDN, un load balancer cloud ou un firewall TLS-inspectant, le passage à 6 jours impose d'automatiser cette propagation aussi.\r\nPas de cert IP pour un service exposé publiquement à long terme. Si l'IP change, le cert devient inutilisable instantanément. Préférez le DNS quand c'est possible.\r\nVérifiez votre client ACME. Tous les clients ACME ne supportent pas encore les profils. acme.sh, Caddy, lego, Traefik : checkez la version. Certbot 4.0 minimum.\r\n--\r\n\r\n7. Verdict\r\n\r\nLe profil est techniquement supérieur au 90 jours sur le plan sécuritaire. Mais il déplace le coût : moins de risques liés aux clés compromises et à la révocation cassée, plus de risques liés à la chaîne de renouvellement.\r\n\r\nLa règle simple : si votre renouvellement automatique est fiable, migrez. Sinon, fiabilisez-le d'abord — la migration n'en sera que la conséquence naturelle.\r\n\r\nPour la majorité des infras web auto-hébergées (typiquement, un Proxmox + reverse proxy + une dizaine de services derrière), le 90 jours reste un excellent compromis. Le devient pertinent quand :\r\nVous avez besoin de certs sur IP (obligatoire).\r\nVous exploitez des services à forte exigence de sécurité (clés très sensibles).\r\nVous voulez tester votre résilience opérationnelle (le 6 jours est un excellent test de fiabilité de votre stack).\r\n\r\nLe reste du temps, gardez le 90 jours, dormez tranquille, et ressortez ce document quand le CA/Browser Forum imposera 45 jours par défaut (vers 2027-2028).\r\n--\r\n\r\nSources\r\nLet's Encrypt — Six-Day and IP Address Certificates Available in Certbot (mars 2026)\r\nLet's Encrypt — 6-day and IP address certs in general availability (janvier 2026)\r\nDocumentation Certbot — Hooks\r\nCA/Browser Forum Baseline Requirements"},"score":0.75,"snippet":"Guide DevOps / WebOps pour comprendre les certificats à durée de vie courte () et décider si vous devez migrer.\r\n--\r\n\r\nTL;DR\r\n\r\nLet's Encrypt propose désormais au grand public des certificats valides 6 jours (profil ), e…","tier":2},{"article":{"uuid":"4f443bcb-b0d4-47f8-837d-61627e6c94f2","slug":"priorites-et-acces-au-reseau-en-4g-et-5g","title":"Pourquoi le réseau mobile ne s'effondre pas le jour où tout le monde téléphone en même temps","category":"télécom","author":"cedric@abonnel.fr","cover":"cover.jpg","published":true,"published_at":"2026-01-06 22:21","created_at":"2026-01-06 22:21:04","updated_at":"2026-05-11 23:40:18","plain":"Un attentat, un séisme, un match du Stade de France, une grande panne d'électricité. Dans ces moments-là, des centaines de milliers de gens dégainent leur téléphone au même instant. Le réseau mobile est dimensionné pour un usage moyen, pas pour un pic massif simultané, et il devrait théoriquement s'effondrer. La plupart du temps, il tient. Pas parfaitement, pas pour tout le monde, mais il tient — et surtout, les appels d'urgence continuent de passer. C'est le résultat d'une série de mécanismes empilés depuis les années 1990, que la 4G a affinés et que la 5G a élargis. Cet article les passe en revue, et termine sur une question qu'on me pose souvent : est-ce que mon forfait à 50 € me donne une place prioritaire dans cette file d'attente ?\r\n\r\nTrois questions, pas une\r\n\r\nQuand une cellule commence à chauffer, l'opérateur doit répondre à trois questions distinctes. Qui a le droit de se connecter ? Une fois connecté, qui passe en premier ? Et quels services doivent absolument continuer à fonctionner, quoi qu'il arrive ?\r\n\r\nLa 2G ne savait répondre qu'à la première. Elle filtrait à l'entrée et basta. La 4G a ajouté la deuxième : une fois admis sur le réseau, votre trafic est traité différemment selon son importance. La 5G ajoute la troisième : elle peut créer des réseaux virtuels parallèles dont certains sont réservés à des usages critiques, totalement isolés des autres.\r\n\r\nLe filtrage à l'entrée\r\n\r\nChaque carte SIM porte un numéro de classe d'accès, hérité du GSM, entre 0 et 15. Les classes 0 à 9 couvrent le grand public — autrement dit nous tous. Les classes 11 à 15 sont réservées : services de secours, autorités publiques, personnel opérateur, usages militaires selon les pays.\r\n\r\nQuand une cellule est surchargée, l'eNodeB (la station de base 4G) diffuse une consigne aux téléphones du secteur : « les classes 0 à 9, vous attendez ». C'est l'Access Class Barring. Concrètement, votre téléphone reçoit ce message et bloque lui-même votre tentative d'appel ou de connexion data, sans même envoyer la demande à la station. C'est élégant parce que ça soulage la station avant même qu'elle ne soit sollicitée. Les classes prioritaires, elles, passent sans encombre.\r\n\r\nUne variante plus dure, l'Extended Access Barring, vise les objets connectés et les usages non urgents. Quand une vraie crise se déclare, l'opérateur peut couper les compteurs intelligents, les alarmes domestiques et autres équipements bavards pour préserver la bande passante humaine.\r\n\r\nEn 5G, ce mécanisme a été refondu sous le nom d'UAC — Unified Access Control, introduit dans la Release 15 du 3GPP. UAC unifie dans un seul cadre ce qui était auparavant éparpillé entre ACB, EAB et d'autres dispositifs spécifiques. Il repose sur deux notions complémentaires. Les Access Identities identifient qui vous êtes : utilisateur lambda, abonné à un service prioritaire type MPS ou MCS, personnel d'urgence, agent opérateur. Les Access Categories identifient ce que vous essayez de faire : appel d'urgence, connexion data normale, SMS, mise à jour de localisation. La combinaison des deux détermine si votre demande passe ou pas. La granularité gagnée par rapport à la 4G est réelle : on peut bloquer un type d'action précis pour un type d'utilisateur précis, par exemple « les abonnés grand public ne peuvent plus initier de nouveaux appels data, mais les SMS et les appels voix continuent ».\r\n\r\nLa priorité une fois connecté\r\n\r\nLà où la 4G a vraiment innové, c'est en introduisant le QCI — QoS Class Identifier. Chaque flux de données qui transite sur le réseau se voit attribuer un numéro entre 1 et 9 (avec quelques valeurs supplémentaires pour des cas spéciaux) qui dit à l'infrastructure comment le traiter.\r\nUsage | QCI | Traitement |\r\n---|---|---|\r\nAppel VoLTE (voix sur LTE) | 1 | Latence minimale, débit garanti |\r\nVisioconférence | 2 | Débit garanti |\r\nSignalisation réseau | 5 | Très haute priorité |\r\nStreaming vidéo | 6 ou 8 | Best effort prioritaire |\r\nWeb et internet général | 9 | Best effort standard |\r\n\r\nQuand la cellule est encombrée, le routeur sait quoi sacrifier en premier. YouTube va ralentir, les pages web vont mettre du temps à charger, mais l'appel téléphonique de votre voisin reste audible. C'est un compromis assumé : on dégrade volontairement les usages secondaires pour préserver les usages critiques.\r\n\r\nLa 5G a transposé ce mécanisme sous le nom de 5QI (5G QoS Identifier) avec davantage de niveaux et une meilleure prise en compte des cas que la 4G gérait mal — notamment les services à très basse latence pour les usines connectées ou la voiture autonome. La voix d'urgence garde son sommet, les données critiques industrielles s'intercalent juste après, le streaming et le web restent en bas de la pile.\r\n\r\nL'isolation par tranches : le network slicing\r\n\r\nC'est l'apport majeur de la 5G en matière de gestion de crise. Au lieu de partager une seule infrastructure entre tous les usages, on peut maintenant la découper logiciellement en tranches — des slices — qui se comportent comme autant de réseaux indépendants, alors qu'ils tournent sur les mêmes antennes et les mêmes câbles.\r\n\r\nUn opérateur peut par exemple maintenir une tranche pour le grand public avec ses millions d'abonnés et son trafic massif, une autre pour les services d'urgence dimensionnée pour rester fluide même quand le reste sature, une troisième pour les objets connectés industriels avec des garanties de latence, et une quatrième pour des opérateurs critiques type SNCF, EDF ou hôpitaux. Chaque tranche a ses propres règles d'admission, ses propres priorités, ses propres garanties de performance. Si la tranche grand public est totalement saturée, celle des secours ne le sait même pas.\r\n\r\nCette isolation est ce qui distingue le plus fondamentalement la 5G des générations précédentes. Avant, tout le monde se battait pour les mêmes ressources, avec juste des priorités différentes pour départager. Maintenant, certaines ressources sont retirées du combat dès le départ.\r\n\r\nRécapitulatif\r\nGénération | Ce qui est contrôlé | Comment |\r\n---|---|---|\r\n2G | L'accès au réseau | Classes d'accès 0-15 |\r\n4G | L'accès + la priorité du trafic | ACB / EAB + QCI |\r\n5G | L'accès + la priorité + l'isolation des services | UAC + 5QI + network slicing |\r\n\r\nTous ces mécanismes restent invisibles tant que tout va bien. Vous ne savez pas qu'ils existent. Vous découvrez leur existence le jour où votre voisin n'arrive plus à charger ses mails alors que les pompiers, eux, continuent de communiquer normalement. Ce jour-là, ce n'est pas de la magie. C'est trente ans d'ingénierie radio qui ont anticipé que ça arriverait.\r\n--\r\n\r\nEt mon forfait premium, alors ?\r\n\r\nQuestion logique à ce stade. Si le réseau sait techniquement prioriser certains flux par rapport à d'autres, qu'est-ce qui empêche un opérateur de faire passer ses abonnés à 50 € devant ceux à 10 € quand les antennes saturent ? La réponse honnête commence par un aveu : techniquement, rien. L'outil existe, il s'appelle Quality of Service (QoS), c'est exactement le mécanisme qu'on vient de décrire. Si demain Orange ou SFR voulaient créer une voie rapide pour leurs abonnés haut de gamme, ils auraient les outils dans la boîte. Pourtant, ils ne le font pas. Pour quatre raisons.\r\n\r\nLa loi européenne l'interdit\r\n\r\nLe règlement (UE) 2015/2120, dit « règlement internet ouvert », oblige les opérateurs à traiter tout le trafic de la même façon, sans discrimination liée à l'expéditeur, au destinataire, au contenu ou à l'application. Il a fêté ses dix ans en novembre 2025, et l'ARCEP a profité de l'anniversaire pour rappeler que c'est l'un des piliers du modèle numérique européen. Les sanctions sont sérieuses : jusqu'à 3 % du chiffre d'affaires de l'opérateur fautif. Un opérateur français qui annoncerait demain « avec notre forfait Premium, vous passez devant les autres » se retrouverait devant l'ARCEP dans la semaine.\r\n\r\nLe règlement laisse quelques portes ouvertes pour les services dits « spécialisés » qui ont besoin d'une qualité garantie — téléchirurgie, voiture connectée. Mais ces exceptions sont étroitement encadrées et ne couvrent absolument pas le confort d'un client haut de gamme qui voudrait charger son Instagram plus vite à 19h.\r\n\r\nAux États-Unis, l'histoire est différente. La FCC a tenté de restaurer la neutralité du net en 2024, mais en janvier 2025 la cour d'appel du sixième circuit a invalidé la décision, jugeant que la FCC n'avait pas l'autorité légale pour reclasser le haut débit comme service public. Avec l'arrivée de Brendan Carr à la tête de la FCC, ouvertement opposé à la neutralité du net, il n'y a aujourd'hui plus de règle fédérale outre-Atlantique. Quelques États (Californie, Washington, New York, Oregon) ont leurs propres lois qui maintiennent le principe, mais à l'échelle du pays, les opérateurs américains pourraient légalement faire ce que leurs homologues européens n'ont pas le droit de faire. Pourtant, ils ne le font pas ouvertement non plus, et la raison renvoie aux trois points suivants.\r\n\r\nC'est commercialement intenable\r\n\r\nImagine la publicité : « Forfait Premium à 50 € — passez devant les pauvres pendant les heures de pointe ». Le slogan ne se vend pas. Les directions marketing savent que dire à la moitié de leurs clients qu'ils sont des citoyens de seconde zone du réseau est le plus court chemin vers une crise de réputation. C'est pour ça qu'on vous vend « plus de Go », « 5G ultra rapide », « roaming inclus dans 110 pays » — des promesses qui sonnent positivement sans jamais dire à personne qu'il est désavantagé.\r\n\r\nL'effet boule de neige serait toxique\r\n\r\nImagine que ça se mette quand même en place. Les riches passent devant. Les antennes restent saturées pour les autres, qui se mettent à payer plus pour échapper à la saturation, ce qui sature encore plus les bas forfaits, ce qui pousse encore plus de gens à monter en gamme. Au bout de cinq ans, on a un réseau à deux vitesses où les forfaits modestes deviennent quasi inutilisables aux heures critiques, et où la connexion mobile correcte devient un service de luxe. Ce n'est plus un service de télécommunications, c'est un système de classes.\r\n\r\nC'est exactement ce que la neutralité du net cherche à empêcher. Pas par idéologie, mais parce qu'on a déjà vu où mène ce genre de spirale dans les pays où elle n'est pas protégée. Certains opérateurs proposent par exemple des forfaits où Facebook et WhatsApp sont gratuits mais où le reste est payant, ce qui revient à dire que le bon internet est celui que l'opérateur a choisi pour vous. Ce n'est plus tout à fait le même service.\r\n\r\nÇa ne résoudrait rien\r\n\r\nQuand un réseau sature, ce n'est pas un problème de répartition entre utilisateurs, c'est un problème de capacité totale. Faire passer Pierre avant Paul ne crée pas un seul bit de bande passante supplémentaire. Ça déplace juste le problème de l'un vers l'autre. La vraie solution, quand une cellule sature trop souvent, c'est d'installer plus d'antennes, de densifier le réseau, de basculer sur une fréquence plus performante ou de passer à la génération suivante. C'est cher, c'est long, ça implique des autorisations administratives et des négociations foncières, mais c'est la seule réponse qui tient la route. Prioriser, c'est rapide, mais ça repousse le mur, ça ne le déplace pas.\r\n\r\nC'est comme si on proposait une voie réservée aux Mercedes sur l'A7 un samedi de chassé-croisé. Techniquement, on peut peindre la ligne au sol et installer les panneaux dans la matinée. Mais cette voie ne réduit pas le bouchon, elle le concentre sur les voies restantes ; elle écorne le principe d'égalité d'accès à l'infrastructure publique ; et elle ne change rien au problème de fond, qui est qu'il y a trop de voitures pour la route disponible. La vraie solution reste la même qu'avant : élargir l'autoroute, ou convaincre une partie des gens de prendre le train.\r\n\r\nLe caveat 5G\r\n\r\nUne nuance honnête pour finir. Le network slicing complique le débat juridique. Un opérateur peut créer des tranches de réseau avec des qualités différenciées en toute légalité quand il s'agit d'usages spécialisés — santé, industrie, transports. La question qui agite régulateurs et juristes depuis plusieurs années est de savoir où finit le service spécialisé légitime et où commence le contournement déguisé de la neutralité du net. L'ARCEP a ouvert ce chantier, et c'est probablement là, plus que dans une revanche commerciale brutale sur les forfaits premium, que se jouera la prochaine bataille.\r\n\r\nMais pour répondre simplement à la question : non, votre forfait à 50 € ne vous donne pas la priorité réseau sur celui de votre voisin à 10 €. Il vous donne plus de data, parfois un meilleur débit théorique, des options en plus. Pas une place dans la file."},"score":0.75,"snippet":"Un attentat, un séisme, un match du Stade de France, une grande panne d'électricité. Dans ces moments-là, des centaines de milliers de gens dégainent leur téléphone au même instant. Le réseau mobile est dimensionné pour …","tier":2},{"article":{"uuid":"0e0b8d1d-3352-4ab7-bc70-7bc1f02ee485","slug":"imagemagick-sur-debian-pourquoi-convert-im6-et-ou-trouver-magick","title":"ImageMagick sur Debian : pourquoi `convert-im6` et où trouver `magick`","category":"linux","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2025-12-28 15:32","created_at":"2025-12-28 15:32:01","updated_at":"2026-05-12 00:29:00","plain":"Si tu as déjà installé ImageMagick sur un serveur Debian, tu es probablement tombé sur cette étrangeté : la commande historique est là, mais elle s'appelle . Et la commande moderne , présente partout ailleurs, semble manquer à l'appel — sauf si tu es sur Debian 13, où elle est revenue.\r\n\r\nLe sujet est un peu plus subtil qu'il n'y paraît, et beaucoup d'explications qui circulent sur le web sont fausses (notamment celle qui prétend que entrerait en conflit avec un binaire de — c'est un mythe). Voilà ce qui se passe réellement.\r\n\r\nUn peu de contexte sur ImageMagick\r\n\r\nImageMagick, c'est une suite d'outils en ligne de commande pour manipuler des images : conversion de formats, redimensionnement, compression, génération de vignettes, watermarks, lecture de métadonnées… Le genre d'outil qu'on retrouve aussi bien dans un script bash de cinq lignes que dans une chaîne de traitement industrielle ou un pipeline CI.\r\n\r\nHistoriquement, la suite est composée de plusieurs binaires distincts, chacun avec son rôle : pour la conversion, pour lire les métadonnées, pour le traitement par lot, pour combiner des images, pour les planches. C'est l'architecture d'ImageMagick 6, la version qui a régné en maître pendant une bonne quinzaine d'années.\r\n\r\nDepuis 2016, ImageMagick 7 est disponible. Le grand changement, c'est qu'il unifie tout derrière une seule commande : . Les anciennes commandes deviennent des sous-commandes (, , etc.), même si pour la rétrocompatibilité un binaire peut continuer à se comporter comme quand on l'appelle avec une syntaxe d'IM6.\r\n\r\nPourquoi le suffixe sur Debian\r\n\r\nC'est ici que beaucoup d'articles racontent n'importe quoi. La vraie raison n'a rien à voir avec un conflit avec — je l'ai vérifié, aucun paquet système ne fournit de commande . Tu peux le vérifier toi-même : ne renvoie rien qui vienne de util-linux.\r\n\r\nLa vraie raison est plus prosaïque. Pendant des années, Debian a voulu pouvoir packager IM6 et IM7 en parallèle dans la même distribution, pour permettre une transition en douceur. Le souci, c'est que les deux versions fournissent des binaires aux mêmes noms (, , …) avec des comportements légèrement différents. Impossible de les installer côte à côte sans renommer.\r\n\r\nLa solution adoptée par les mainteneurs Debian a été d'ajouter un suffixe explicite au nom de chaque binaire :\r\nles outils d'IM6 deviennent , , etc.\r\nles outils d'IM7 deviennent et compagnie\r\n\r\nLe indique la profondeur quantique du binaire (16 bits par canal, la valeur par défaut), et le / indique la version d'ImageMagick. Les noms classiques (, ) ne sont alors que des symlinks gérés par , qui pointent vers la version active. C'est le même mécanisme que pour , , ou à une époque.\r\n\r\nCe qui change entre Debian 11, 12 et 13\r\n\r\nC'est l'autre point que la plupart des articles ratent : la situation n'est pas la même selon la version de Debian.\r\n\r\nSur Debian 11 (bullseye) et 12 (bookworm), le paquet installe IM6 (version 6.9.11.60). Tu n'as que et ses copains, et n'existe pas dans les dépôts officiels (le paquet existe mais n'est pas le défaut). C'est cette situation que décrivent la plupart des tutoriels qui traînent sur le web.\r\n\r\nSur Debian 13 (trixie), sorti en août 2025, le défaut a basculé sur IM7 (version 7.1.1.43). La commande est disponible, et est désormais un symlink vers . Tu peux le vérifier :\r\n\r\n\r\n\r\nAutrement dit, sur Trixie, si tu écris , tu appelles en réalité IM7 sous un nom d'IM6. Ça fonctionne pour la plupart des usages, mais attention : IM7 est plus strict sur l'ordre des arguments en ligne de commande (), donc certains scripts anciens peuvent grogner.\r\n\r\nCorrespondance entre les deux versions\r\nImageMagick 6 (Debian 11/12) | ImageMagick 7 (Debian 13) |\r\n---------------------------- | ------------------------- |\r\n| |\r\n| |\r\n| |\r\n| |\r\n\r\nPour les cas simples, le comportement est identique. Une commande de redimensionnement classique passe sans modification :\r\n\r\n\r\n\r\nFaut-il s'inquiéter sur un serveur en production ?\r\n\r\nSi tu administres une machine Debian 12 ou plus ancienne, non. IM6 est toujours activement maintenu pour les CVE (les correctifs sont régulièrement backportés dans les paquets stable), et la plupart des scripts existants continueront de fonctionner. Le dans le nom du binaire est juste du marquage, pas une dépréciation.\r\n\r\nSi tu migres vers Debian 13, prévois un peu de temps pour relire tes scripts. Les pièges classiques :\r\nl'ordre des options qui devient plus strict ;\r\nquelques comportements de couleur et d'alpha qui ont changé entre les deux versions, notamment sur les opérations chaînées ;\r\nle fichier qui a déménagé : devient . Si tu avais assoupli les restrictions sur les PDF ou PostScript (un grand classique), il faut reporter la modification.\r\n\r\nPour un projet PHP comme les tiens, l'extension Imagick côté PHP est sensible à cette transition : la version compilée doit correspondre à la version d'IM installée, sinon échoue. Sur Trixie, c'est IM7 qu'il faut lier.\r\n\r\nEn pratique\r\n\r\nSur Debian 11/12, utilise , , etc. C'est la convention locale, pas une version dégradée. Si tu veux malgré tout, tu peux installer le paquet (présent dans les dépôts depuis bookworm) et basculer les alternatives manuellement, mais ce n'est presque jamais nécessaire.\r\n\r\nSur Debian 13, utilise directement. La commande reste disponible par compatibilité, mais elle pointe en réalité vers IM7 — autant utiliser le nom officiel.\r\n\r\nEt dans tous les cas, évite les alias globaux qui réécrivent : ça finit toujours par mordre quelqu'un, soit toi dans six mois, soit le prochain qui reprendra le serveur."},"score":0.75,"snippet":"Si tu as déjà installé ImageMagick sur un serveur Debian, tu es probablement tombé sur cette étrangeté : la commande historique est là, mais elle s'appelle . Et la commande moderne , présente partout ailleurs, semble ma…","tier":2},{"article":{"uuid":"11186836-bbac-4054-82db-a3bfed14a274","slug":"imagemagick-traiter-des-images-en-ligne-de-commande","title":"ImageMagick : traiter des images en ligne de commande","category":"linux","author":"cedric@abonnel.fr","cover":"cover.png","published":true,"published_at":"2025-12-28 14:56","created_at":"2025-12-28 14:56:14","updated_at":"2026-05-12 00:36:01","plain":"1. À quoi ça sert\r\n\r\nImageMagick, c'est l'outil qu'on sort quand on veut manipuler des images sans ouvrir un logiciel graphique. Pas de Photoshop, pas de GIMP, pas de clic-droit \"Redimensionner\" sur cent fichiers à la suite : juste une commande dans un terminal, et le travail est fait.\r\n\r\nC'est une suite d'outils qui sait lire, écrire et transformer plus de 200 formats — du JPEG classique au PDF en passant par le HEIC des iPhones, le WebP de Google ou le bon vieux TIFF des scanners. L'absence d'interface graphique est ici une fonctionnalité, pas un défaut : elle permet de l'utiliser partout où il n'y a pas d'écran, et surtout dans tout ce qui doit tourner tout seul.\r\n\r\nOn le retrouve donc naturellement :\r\nsur des serveurs web qui génèrent des miniatures à la volée,\r\ndans des scripts qui traitent des dossiers entiers d'un coup,\r\ndans des pipelines CI/CD pour préparer des assets,\r\ndans des conteneurs Docker, accessibles uniquement en SSH.\r\n\r\nDepuis la version 7, tout passe par une commande unique : . Les anciennes commandes (, , ...) existent toujours pour la compatibilité, mais elles ne sont plus la norme.\r\n\r\n2. Installation\r\n\r\nSur Debian ou Ubuntu :\r\n\r\n\r\n\r\nOn vérifie ensuite que tout est en place :\r\n\r\n\r\n\r\nLa sortie indique aussi les délégués compilés (libwebp, libheif, libraw, etc.). Si un format précis vous intéresse, c'est ici qu'il faut regarder : ImageMagick ne sait lire un format que si la bibliothèque correspondante est présente au moment de la compilation.\r\n\r\n3. Comment ImageMagick raisonne\r\n\r\nToutes les commandes suivent la même logique :\r\n\r\n\r\n\r\nL'image est chargée en mémoire, puis chaque option s'applique dans l'ordre où elle est écrite, comme une chaîne de traitement. Ce point est important : déplacer une option dans la ligne peut changer le résultat final.\r\n\r\nExemple :\r\n\r\n\r\n\r\nIci, l'image est lue, redimensionnée à 800×600, puis compressée à 85% de qualité, puis écrite sur le disque. Si on inversait et , le résultat serait identique dans ce cas précis, mais avec des opérations qui modifient les pixels (flou, conversion d'espace colorimétrique, recadrage), l'ordre devient critique.\r\n\r\n4. Convertir d'un format à un autre\r\n\r\nLe cas le plus simple : changer l'extension du fichier de sortie suffit.\r\n\r\n\r\n\r\nImageMagick détecte le format cible à partir de l'extension et fait la conversion. C'est aussi simple que ça pour 90% des cas.\r\n\r\nQuand on veut être plus précis — par exemple forcer une profondeur de couleur particulière — on l'indique explicitement :\r\n\r\n\r\n\r\nUtile quand on récupère des images en 16 bits par canal qu'on veut ramener à du 8 bits standard, soit pour gagner de la place, soit pour garantir la compatibilité avec un logiciel récalcitrant.\r\n\r\n5. Redimensionner\r\n\r\nLa méthode brutale\r\n\r\n\r\n\r\nCette commande redimensionne à 800×600 en respectant les proportions par défaut, contrairement à ce qu'on pourrait croire. Si l'image source est en 4:3, elle rentrera pile dedans ; si elle est en 16:9, ImageMagick choisira la dimension la plus contraignante et l'autre sera plus petite que demandé.\r\n\r\nPour forcer exactement ces dimensions quitte à déformer l'image, il faut ajouter un point d'exclamation :\r\n\r\n\r\n\r\nNe rétrécir que les grandes images\r\n\r\nC'est probablement le cas le plus utile au quotidien : on a un dossier d'images, on veut s'assurer qu'aucune ne dépasse 1600 pixels, mais on ne veut pas agrandir les petites (ce qui dégraderait leur qualité).\r\n\r\n\r\n\r\nLe signifie « uniquement si l'image est plus grande ». Les guillemets sont nécessaires car est interprété par le shell comme une redirection. On peut aussi échapper le caractère avec .\r\n\r\nEn pourcentage\r\n\r\n\r\n\r\nPratique quand on veut diviser la taille par deux sans calculer les dimensions exactes.\r\n\r\n6. Qualité et poids du fichier\r\n\r\nPour les JPEG, le paramètre règle le compromis entre fidélité visuelle et poids du fichier :\r\n\r\n\r\n\r\nQuelques repères en pratique :\r\n100 : qualité maximale, fichier énorme, différence imperceptible avec 95.\r\n85 : la valeur par défaut de la plupart des appareils photo, et un excellent compromis pour le web.\r\n75 : encore très acceptable, gain de place notable.\r\nEn dessous de 70 : les artefacts deviennent visibles, surtout sur les aplats de couleur.\r\n\r\nSupprimer les métadonnées\r\n\r\nLes fichiers issus d'appareils photo ou de smartphones embarquent beaucoup d'informations : modèle de l'appareil, date, parfois coordonnées GPS, miniature intégrée, profil colorimétrique... Tout ça peut peser plusieurs dizaines de kilo-octets, et surtout poser des problèmes de confidentialité.\r\n\r\n\r\n\r\nL'option fait le ménage. À utiliser systématiquement avant de publier des photos sur le web, et indispensable dès qu'on parle de RGPD ou d'anonymisation. Attention en revanche pour la photographie professionnelle où certaines métadonnées (droits d'auteur, profil ICC) peuvent être nécessaires.\r\n\r\n7. Recadrer et adapter à un cadre\r\n\r\nRecadrage classique\r\n\r\n\r\n\r\nLa syntaxe se lit comme une fenêtre qu'on découpe dans l'image : largeur × hauteur, décalée de 100 pixels depuis la gauche et 50 pixels depuis le haut.\r\n\r\nRemplir un cadre exact, sans déformation\r\n\r\nC'est le besoin typique des miniatures de site : on veut toutes les vignettes en 800×600 pile, peu importe le format des photos d'origine.\r\n\r\n\r\n\r\nTrois étapes enchaînées :\r\n\r\n1. redimensionne pour que l'image remplisse le cadre (le inverse la logique habituelle : on prend la plus grande dimension comme contrainte, pas la plus petite).\r\n2. indique qu'on veut centrer le découpage.\r\n3. coupe ce qui dépasse pour obtenir exactement la taille voulue.\r\n\r\nLe résultat : aucune déformation, aucune bande noire, juste un éventuel rognage sur les bords les plus longs.\r\n\r\n8. Traiter un dossier entier\r\n\r\nUne boucle Bash suffit pour convertir tous les PNG d'un dossier en JPEG :\r\n\r\n\r\n\r\nLa syntaxe retire l'extension du nom, on y ajoute . Simple et fiable.\r\n\r\nPour modifier les fichiers sur place, ImageMagick fournit :\r\n\r\n\r\n\r\nCette commande écrase chaque fichier par sa version redimensionnée. C'est rapide et pratique, mais ça veut aussi dire qu'il n'y a pas de retour en arrière : si la commande est mal écrite, le dossier original est perdu. Règle absolue : travailler sur une copie, ou s'assurer d'avoir une sauvegarde.\r\n\r\n9. Texte et filigranes\r\n\r\nApposer une mention textuelle\r\n\r\n\r\n\r\n ancre le texte dans un coin de l'image (les neuf positions classiques : , , , , ...), et ajoute un décalage par rapport à ce point d'ancrage. Ici, éloigne le texte de 10 pixels du coin inférieur droit.\r\n\r\nSuperposer un logo ou un watermark image\r\n\r\n\r\n\r\nL'image principale est lue en premier, le filigrane en second, puis les fusionne. Si le watermark a un canal alpha (transparence), il est respecté.\r\n\r\n10. Couleurs et tons\r\n\r\nPassage en noir et blanc :\r\n\r\n\r\n\r\nRéglage de la luminosité et du contraste (valeurs en pourcentage, positives ou négatives) :\r\n\r\n\r\n\r\nIci, +10% de luminosité et +5% de contraste. Pour assombrir, on utilise des valeurs négatives : .\r\n\r\n11. Inspecter une image\r\n\r\nPour obtenir les informations essentielles — format, dimensions, profondeur :\r\n\r\n\r\n\r\nPour tout savoir, y compris les métadonnées EXIF, le profil colorimétrique, l'histogramme :\r\n\r\n\r\n\r\nLa sortie verbeuse peut faire plusieurs pages, mais c'est inestimable pour diagnostiquer un problème ou comprendre d'où vient un fichier.\r\n\r\n12. Formats modernes\r\n\r\nLe WebP de Google offre une compression nettement meilleure que le JPEG à qualité équivalente, et il est aujourd'hui supporté par tous les navigateurs courants :\r\n\r\n\r\n\r\nL'AVIF va encore plus loin en termes de compression, au prix d'un encodage plus lent :\r\n\r\n\r\n\r\nSi la commande échoue avec une erreur de délégué, c'est que votre installation d'ImageMagick a été compilée sans le support AVIF — il faudra installer ou recompiler.\r\n\r\n13. Quelques règles à se fixer\r\nToujours travailler sur une copie quand on découvre une nouvelle commande. en particulier ne pardonne pas.\r\nStripper les métadonnées avant toute publication web.\r\nPour de très gros volumes (plusieurs milliers d'images, ou des images très lourdes), regarder du côté de : c'est plus rapide et beaucoup moins gourmand en mémoire qu'ImageMagick. Pour tout le reste, ImageMagick est largement suffisant.\r\nAutomatiser dès qu'on répète : si la même commande revient deux fois, elle mérite un script.\r\nLire les messages d'erreur : ImageMagick est verbeux, et la plupart des problèmes (délégué manquant, permissions, format non reconnu) sont explicitement nommés dans la sortie.\r\n\r\n14. Là où on le croise vraiment\r\n\r\nEn pratique, ImageMagick finit presque toujours dans les mêmes situations :\r\npréparation d'images pour un site web (redimensionnement + compression + strip),\r\ngénération de miniatures à la volée côté serveur,\r\nnormalisation d'un catalogue photo hétérogène (formats, tailles, profils),\r\nconversion massive d'archives anciennes vers des formats modernes,\r\nnettoyage des métadonnées avant diffusion publique.\r\n--\r\n\r\nImageMagick fait partie de ces outils qu'on apprivoise lentement mais qu'on garde longtemps. Au début, on copie des commandes trouvées en ligne sans tout comprendre. Puis on commence à reconnaître les options, à les combiner, à écrire ses propres scripts. Et un jour, on se rend compte qu'on a remplacé un logiciel entier par trois lignes de Bash — et qu'on n'a jamais été aussi efficace pour traiter des images."},"score":0.75,"snippet":"1. À quoi ça sert\r\n\r\nImageMagick, c'est l'outil qu'on sort quand on veut manipuler des images sans ouvrir un logiciel graphique. Pas de Photoshop, pas de GIMP, pas de clic-droit "Redimensionner" sur cent fichiers à la su…","tier":2},{"article":{"uuid":"46f2f084-8dd8-497a-aef0-4728367ce753","slug":"convertir-des-images-en-ligne-de-commande-sous-linux","title":"Convertir des images en ligne de commande sous Linux","category":"linux","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2025-12-28 14:54","created_at":"2025-12-28 14:54:41","updated_at":"2026-05-12 00:51:02","plain":"La manipulation d'images depuis le terminal est une de ces choses qu'on apprend une fois et qu'on utilise pour toujours. Pas besoin de GIMP, pas besoin d'ouvrir quoi que ce soit : une commande, et c'est réglé.\r\n\r\nVoici les outils que j'utilise concrètement, et dans quels cas.\r\n--\r\n\r\nImageMagick, le plus polyvalent\r\n\r\nC'est l'outil de base. Il gère à peu près tous les formats qui existent, et la syntaxe est toujours la même. L'installation est classique :\r\n\r\n\r\n\r\nConvertir un format :\r\n\r\n\r\n\r\nRedimensionner sans toucher au ratio, en posant une limite maximale :\r\n\r\n\r\n\r\nLe est important — sans lui, ImageMagick agrandit aussi les petites images. Avec, il ne fait que réduire.\r\n\r\nPréparer une image pour le web, en supprimant les métadonnées EXIF et en compressant :\r\n\r\n\r\n\r\nPour traiter un répertoire entier, fait le même boulot mais modifie les fichiers en place — toujours travailler sur une copie ou rediriger vers un autre dossier :\r\n--\r\n\r\nlibvips, pour les traitements lourds\r\n\r\nQuand il y a des centaines de photos ou des images très lourdes (scans, RAW exportés), libvips est nettement plus rapide et utilise beaucoup moins de mémoire qu'ImageMagick. Il charge les images en flux au lieu de tout mettre en RAM.\r\n\r\n\r\n\r\n\r\n\r\nLa syntaxe est moins intuitive qu'ImageMagick mais les gains sur des gros volumes sont sensibles.\r\n--\r\n\r\nFFmpeg, pas que pour la vidéo\r\n\r\nFFmpeg est surtout connu pour la vidéo, mais il convertit les images aussi — utile quand il est déjà installé et qu'on veut éviter une dépendance supplémentaire, ou pour extraire des frames depuis une vidéo :\r\n\r\n\r\n\r\nRedimensionner en conservant le ratio :\r\n--\r\n\r\nLes métadonnées EXIF avec exiftool\r\n\r\nLes appareils photo embarquent beaucoup d'informations dans les fichiers : coordonnées GPS, modèle d'appareil, réglages. Avant de publier une photo, il vaut mieux vérifier ce qu'elle contient :\r\n\r\n\r\n\r\nImageMagick peut aussi supprimer les EXIF avec , mais exiftool offre plus de contrôle quand on veut garder certaines balises et supprimer d'autres.\r\n--\r\n\r\nFichiers RAW\r\n\r\nPour les CR2, NEF, ARW et autres formats propriétaires d'appareils photo, est la solution la plus propre :\r\n\r\n\r\n\r\nIl applique les mêmes algorithmes de développement que l'interface graphique de darktable. est une alternative plus ancienne et plus bas niveau :\r\n--\r\n\r\nHEIC, le format Apple\r\n\r\nLes iPhone exportent leurs photos en HEIC depuis iOS 11. Le format est compact, mais Linux ne le gère pas nativement — il faut convertir avant de pouvoir travailler dessus.\r\n\r\nLe paquet fournit , l'outil le plus direct :\r\n\r\n\r\n\r\nImageMagick peut aussi s'en charger si est installé sur le système :\r\n\r\n\r\n\r\nPour vérifier que le support HEIC est bien disponible :\r\n\r\n\r\n\r\nConversion d'un dossier entier :\r\n--\r\n\r\nEn pratique\r\n\r\nConversion d'un dossier de PNG en WebP :\r\n\r\n\r\n\r\nPipeline complet pour publication web — redimensionnement, suppression EXIF, compression :\r\n\r\n\r\n\r\nTraitement récursif sur un arbre de dossiers :\r\n--\r\n\r\nRécap rapide\r\nCas d'usage | Outil |\r\n---|---|\r\nUsage général | ImageMagick |\r\nGros volumes / performance | libvips |\r\nDéjà dans le pipeline vidéo | FFmpeg |\r\nFichiers RAW | darktable-cli |\r\nHEIC (iPhone) | heif-convert ou ImageMagick |\r\nLecture / nettoyage EXIF | exiftool |\r\n\r\nPour 90 % des besoins courants, ImageMagick suffit. libvips vaut le coup d'être appris si on traite régulièrement des lots importants."},"score":0.75,"snippet":"La manipulation d'images depuis le terminal est une de ces choses qu'on apprend une fois et qu'on utilise pour toujours. Pas besoin de GIMP, pas besoin d'ouvrir quoi que ce soit : une commande, et c'est réglé.\r\n\r\nVoici l…","tier":2},{"article":{"uuid":"5a0cced3-40d0-46bf-8501-b533f3c2608e","slug":"reparer-une-instance-uptime-kuma-installee-via-le-script-proxmox","title":"Réparer une instance Uptime Kuma installée via le script Proxmox","category":"informatique","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2025-11-26 08:33","created_at":"2025-11-26 08:33:49","updated_at":"2026-05-12 09:16:00","plain":"Méthode basée sur l'installation via le script communautaire :\r\ncommunity-scripts.github.io/ProxmoxVE/scripts?id=uptimekuma\r\n\r\nSi tu utilises Uptime Kuma pour monitorer ton infra, tu finiras tôt ou tard par tomber sur un de ces grands classiques : le service qui refuse de démarrer après une mise à jour, des erreurs SQLite louches dans , ou pire — l'interface qui tourne mais ne remonte plus aucun heartbeat. Dans 90 % des cas, c'est la base SQLite qui a pris cher, souvent à cause d'un arrêt brutal du conteneur LXC ou d'une migration qui s'est mal passée.\r\n\r\nAvant de paniquer et de tout réinstaller, il y a une série d'étapes à dérouler. Je les mets ici dans l'ordre, parce que l'ordre compte : on commence toujours par le moins destructif.\r\n\r\nPourquoi SQLite et pas un vrai SGBD ?\r\n\r\nPetite parenthèse pour les juniors qui se demanderaient. Uptime Kuma embarque SQLite parce que c'est une appli pensée pour être facile à déployer : pas de serveur de base à installer à côté, pas de credentials à gérer, juste un fichier sur le disque. C'est génial pour démarrer, mais ça a un défaut majeur — SQLite n'aime pas du tout être coupé en plein milieu d'une écriture. Si ton LXC tombe pendant que Kuma écrit un heartbeat, tu peux te retrouver avec un fichier corrompu. D'où l'importance de toujours arrêter proprement le service avant de toucher au fichier.\r\n\r\n1. Arrêter le service proprement\r\n\r\n\r\n\r\nC'est la première chose à faire, toujours. Tant que le service tourne, il a un verrou sur et il continue d'y écrire. Tu peux ouvrir le fichier en lecture avec malgré ce verrou, mais dès que tu veux faire un ou un , tu vas soit avoir une erreur , soit — pire — corrompre encore plus la base si tu forces.\r\n\r\nVérifie que c'est bien arrêté avant de continuer :\r\n\r\n\r\n\r\nTu dois voir . Pas , pas , pas avec un process encore en l'air.\r\n\r\n2. Aller dans le dossier de l'app\r\n\r\nLe script communautaire installe Kuma dans :\r\n\r\n\r\n\r\nDans ce dossier, ce qui nous intéresse c'est le sous-dossier . C'est là que vit tout ce qui compte : le fichier (la base), les uploads, et quelques fichiers de config. Le reste (, , etc.) c'est le code de l'application — tu peux le casser, un ou une réinstallation le remettra en place. Mais , si tu le perds, tu perds toute ta config de monitoring.\r\n\r\n3. Sauvegarder avant de toucher à quoi que ce soit\r\n\r\nRègle d'or de l'ops : on ne touche jamais à une base de données sans avoir une copie au chaud. Jamais.\r\n\r\n\r\n\r\nLe te génère un suffixe du genre . Comme ça si tu fais plusieurs interventions dans la même semaine, tu sais laquelle date de quand, et tu ne risques pas d'écraser une sauvegarde par une autre.\r\n\r\nCette copie embarque :\r\nla base elle-même\r\nles fichiers WAL (, ) si SQLite est en mode Write-Ahead Logging — c'est important de les prendre avec, sinon ta sauvegarde est incomplète\r\nles uploads et certificats si tu en as\r\n\r\nSi tu sautes cette étape et que tu te plantes à l'étape 5 ou 6, tu n'auras aucun moyen de revenir en arrière. Sérieusement, fais-le.\r\n\r\n4. Vérifier l'intégrité de la base\r\n\r\n\r\n\r\n, c'est la commande de diagnostic native de SQLite. Elle parcourt toute la base, vérifie que les index pointent bien sur les bonnes lignes, que les pages ne sont pas corrompues, que les contraintes sont respectées. Deux issues possibles :\r\n* : la base est saine sur le plan structurel. Si Kuma ne démarre toujours pas, le problème vient probablement d'une migration coincée (voir étape 5) ou du code de l'app, pas du fichier.\r\nUne liste d'erreurs : il y a de la corruption. Selon ce qui est touché, on passera à l'étape 5 ou 6.\r\n\r\nPour les juniors qui découvrent SQLite : , c'est le mot-clé que SQLite utilise pour les commandes qui ne sont pas du SQL standard — c'est spécifique à SQLite, tu ne le verras pas dans PostgreSQL ou MySQL.\r\n\r\n5. Supprimer un paramètre de migration corrompu\r\n\r\nSur certaines versions de Kuma (notamment autour des montées de version qui touchent à l'agrégation des heartbeats), il y a un bug connu : l'entrée dans la table se retrouve dans un état incohérent, et le service refuse de démarrer parce qu'il pense être au milieu d'une migration qui n'avance plus.\r\n\r\nLa fix :\r\n\r\n\r\n\r\nCe qu'on fait, c'est qu'on dit à Kuma : \"oublie où tu en étais, repars de zéro sur ce point\". Au redémarrage, il va recréer la clé proprement et relancer la migration depuis le début. C'est non destructif pour tes données de monitoring — on ne touche qu'à un drapeau d'état interne.\r\n\r\nSi ce n'est pas ton problème (clé absente ou suppression sans effet), passe à la suite.\r\n\r\n6. Solution radicale : vider la table \r\n\r\nSi la corruption est concentrée sur l'historique de monitoring (et c'est souvent le cas, parce que c'est la table où Kuma écrit le plus souvent — un INSERT toutes les 20-60 secondes par sonde, ça finit par faire du volume), tu peux la vider :\r\n\r\n\r\n\r\nÀ lire attentivement : cette commande supprime tout l'historique des sondes. Tu perds les graphes de uptime, les SLA calculés sur les 30/90/365 derniers jours, tout. En revanche :\r\ntes sondes sont conservées (table )\r\ntes utilisateurs aussi (table )\r\ntes notifications également (table )\r\nta config générale est intacte (table )\r\n\r\nC'est à utiliser uniquement quand :\r\npointe vers des problèmes sur ou ses index\r\nKuma refuse de démarrer et l'étape 5 n'a rien donné\r\nou plus simplement, ta base a tellement grossi que Kuma rame et que tu acceptes de perdre l'historique pour repartir propre\r\n\r\nTant qu'à faire, profites-en pour faire un derrière, qui va vraiment libérer l'espace disque (un seul ne récupère pas la place sur le disque, il marque juste les pages comme libres pour réutilisation) :\r\n\r\n\r\n\r\n7. Redémarrer le service\r\n\r\n\r\n\r\nEt vérifie qu'il a bien démarré :\r\n\r\n\r\n\r\nTu dois voir . Si tu vois ou si le service redémarre en boucle, ne le laisse pas dans cet état — passe directement à l'étape 8 pour comprendre pourquoi.\r\n\r\n8. Lire les logs\r\n\r\n\r\n\r\nLe cible le service, le fait du (équivalent de ) — les nouvelles lignes s'affichent en temps réel. Laisse tourner pendant deux ou trois minutes, le temps que Kuma rejoue ses migrations, recharge ses sondes, et envoie les premiers heartbeats.\r\n\r\nCe qu'il faut chercher dans les logs :\r\nerreurs SQLite : , , — ça veut dire que t'as encore un problème de fichier, voire de permissions\r\nmigrations bloquées : des messages du genre qui ne sont jamais suivis d'un \r\npermissions : , — typiquement après une intervention faite en root sur des fichiers qui doivent appartenir à un autre utilisateur. Vérifie avec que les fichiers sont bien possédés par l'user qui fait tourner le service\r\nmodules Node manquants : — ça arrive après une mise à jour qui s'est mal passée. La fix, c'est généralement de relancer dans \r\nport déjà utilisé : — tu as un autre process qui squatte le port 3001 (ou celui que tu as configuré)\r\n\r\nPour sortir du , c'est .\r\n\r\nEt après ?\r\n\r\nUne fois que Kuma tourne propre, prends cinq minutes pour mettre en place ce qui t'aurait évité d'arriver ici :\r\n\r\n1. Une sauvegarde régulière de . Un simple cron qui fait du dossier vers un autre serveur, ça suffit largement pour un Kuma perso. Pense à arrêter le service avant le tar, ou utilise qui fait un snapshot cohérent sans devoir couper Kuma.\r\n2. Un monitoring du monitoring. Oui, c'est méta. Mais si Kuma tombe, c'est lui qui t'aurait alerté de la chute de tes autres services — donc personne ne te prévient. Un check externe (UptimeRobot gratuit, healthchecks.io, ou un autre Kuma sur une autre machine) qui ping ton instance, c'est cinq minutes à mettre en place.\r\n3. Garder ta sauvegarde au moins une semaine** avant de la supprimer. Au cas où un effet de bord apparaîtrait quelques jours plus tard.\r\n\r\nEt voilà. Avec ces huit étapes, tu couvres 95 % des cas de Kuma cassé. Pour les 5 % restants — typiquement quand le LXC lui-même a un souci de filesystem — c'est une autre histoire, et il faudra sortir l'artillerie côté Proxmox."},"score":0.75,"snippet":"Méthode basée sur l'installation via le script communautaire :\r\ncommunity-scripts.github.io/ProxmoxVE/scripts?id=uptimekuma\r\n\r\nSi tu utilises Uptime Kuma pour monitorer ton infra, tu finiras tôt ou tard par tomber sur un…","tier":2},{"article":{"uuid":"5982deaf-f3de-4f65-9270-9849132e64f6","slug":"nos-donnees-a-l-ere-de-l-ia-l-affaire-linkedin-et-la-colere-des-utilisateurs","title":"Nos données à l’ère de l’IA : l’affaire LinkedIn et la colère des utilisateurs","category":"actualité","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-05 07:10:37","created_at":"2025-11-05 07:10:37","updated_at":"2025-11-05 07:10:37","plain":"Un matin d’automne, Léa ouvre son compte LinkedIn comme elle le fait chaque jour. Consultante indépendante, elle y partage des réflexions sur le travail à distance, y échange avec des collègues et y recrute parfois des partenaires. Rien de bien extraordinaire. Mais ce jour-là, un post attire son attention : « LinkedIn utilise vos données pour entraîner ses IA ».\r\n\r\nAu début, elle croit à une rumeur. Encore une de ces tempêtes numériques qui s’évanouissent aussi vite qu’elles éclatent. Puis elle lit plus attentivement : le réseau professionnel de Microsoft admet effectivement utiliser certaines données publiques — les profils, les publications, les interactions visibles — pour nourrir ses modèles d’intelligence artificielle.\r\n\r\nDe la mise en relation à la collecte invisible\r\n\r\nDepuis sa création, LinkedIn se présente comme une vitrine professionnelle : un espace où chacun peut exposer son parcours, ses compétences, ses ambitions. En échange, la plateforme promet visibilité, opportunités et réseau. Mais derrière cette promesse, un autre marché s’est peu à peu installé : celui des données.\r\n\r\nChaque clic, chaque mise à jour de poste, chaque mot-clé devient une pièce d’un immense puzzle comportemental. Ce puzzle, jusqu’ici utilisé pour cibler des offres d’emploi ou des publicités, se retrouve désormais au cœur de quelque chose de beaucoup plus vaste : l’entraînement des intelligences artificielles.\r\n\r\nMicrosoft, maison mère de LinkedIn, investit des milliards dans l’IA. Or, pour qu’une IA apprenne, il lui faut une matière première : les mots, les textes, les interactions humaines. Et LinkedIn en regorge.\r\n\r\nLa ligne floue entre le “public” et le “privé”\r\n\r\nTechniquement, LinkedIn affirme ne collecter que les informations publiques. Mais qu’est-ce que cela signifie vraiment ? Léa n’a jamais donné son accord explicite pour que ses publications servent à entraîner des algorithmes de génération de texte. Elle les a partagées pour échanger avec des pairs, pas pour devenir une donnée parmi des millions d’autres.\r\n\r\nC’est là que le malaise grandit.\r\nLes utilisateurs découvrent que la frontière entre ce qu’ils publient volontairement et ce qui peut être réutilisé s’estompe. Dans les conditions d’utilisation, tout est mentionné — quelque part, en petits caractères. Mais rares sont ceux qui lisent jusqu’à la dernière ligne.\r\n\r\nLe choc du consentement absent\r\n\r\nLes réactions ne se font pas attendre : des posts indignés envahissent la plateforme même.\r\n« On n’est pas des cobayes ! » écrit un utilisateur.\r\n« Nos profils sont devenus des datasets », dénonce une autre.\r\n\r\nCe qui choque, ce n’est pas seulement l’usage, mais la manière dont il a été introduit : sans consultation, sans transparence, presque à bas bruit.\r\n\r\nLes défenseurs du projet rétorquent que l’IA ne “lit” pas nos données comme un humain. Qu’elle analyse des tendances, pas des personnes. Que tout est anonymisé.\r\nMais cette défense sonne creux pour beaucoup : anonymiser ne supprime pas la question éthique. À partir du moment où nos mots, nos idées, nos réflexions alimentent un système dont nous ne maîtrisons ni les usages ni les bénéfices, une part de notre autonomie numérique s’érode.\r\n\r\nUne affaire de confiance\r\n\r\nLinkedIn n’est pas la première plateforme à faire face à cette controverse. Reddit, X (ex-Twitter) et même Meta ont adopté des politiques similaires, justifiant ces pratiques par la nécessité d’améliorer leurs modèles d’IA.\r\nMais LinkedIn occupe une place particulière : il s’agit du réseau professionnel par excellence. Ici, les utilisateurs partagent des informations sensibles — leur parcours, leur entreprise, leurs compétences — souvent avec leur vrai nom.\r\n\r\nLa relation de confiance entre l’utilisateur et la plateforme est donc essentielle. Et c’est justement cette confiance qui vacille.\r\n\r\nLéa et le dilemme numérique\r\n\r\nQuelques jours plus tard, Léa se rend dans les paramètres de confidentialité.\r\nElle découvre, cachée dans une section sobrement intitulée « Utilisation des données pour l’IA », une mention : « Nous pouvons utiliser vos informations publiques pour améliorer nos produits et services, y compris les technologies d’intelligence artificielle. »\r\n\r\nIl existe bien une option d’exclusion, mais difficile à trouver. Léa la décoche, sans savoir si cela changera vraiment quelque chose.\r\nElle ressent un mélange de soulagement et de résignation.\r\n\r\nCar au fond, la question dépasse LinkedIn. Elle touche à une réalité plus vaste : dans l’ère de l’intelligence artificielle, nos données sont devenues la nouvelle énergie, le carburant invisible qui alimente des machines toujours plus puissantes.\r\n\r\nVers une prise de conscience collective\r\n\r\nL’affaire LinkedIn agit comme un électrochoc. Elle révèle à quel point le consentement numérique reste un concept fragile, souvent illusoire. Elle invite chacun à repenser ce qu’il partage en ligne, mais aussi à exiger des plateformes une vraie transparence.\r\n\r\nLes régulateurs européens, via le RGPD, commencent à se saisir du sujet. Certains experts appellent à créer un « droit à l’exclusion des IA », un cadre légal obligeant les entreprises à obtenir un consentement explicite avant toute utilisation des données à des fins d’entraînement algorithmique.\r\n\r\nMais pour l’instant, la balle reste surtout dans le camp des utilisateurs — ceux qui, comme Léa, naviguent entre pragmatisme et inquiétude, entre le besoin de visibilité et la peur d’être instrumentalisés.\r\n--\r\n\r\n Entre progrès et perte de contrôle\r\n\r\nL’IA promet des avancées spectaculaires. Elle transforme nos métiers, nos outils, nos manières de communiquer. Mais elle pose une question fondamentale : qui possède les données qui la nourrissent ?\r\n\r\nLinkedIn n’est peut-être qu’un exemple parmi d’autres, mais il symbolise un tournant.\r\nDans cette ère où chaque mot que nous tapons peut devenir une donnée d’apprentissage, la véritable ressource n’est plus la technologie, mais la confiance.\r\nEt cette confiance, aujourd’hui, semble s’effriter à mesure que les algorithmes se renforcent.\r\n--\r\n\r\nVoici les risques autour de l’utilisation des données des utilisateurs par LinkedIn (et d’autres plateformes) pour l’IA\r\n\r\n1. Atteinte à la vie privée et au consentement\r\n\r\nMême si LinkedIn affirme n’utiliser que des données “publiques”, cela ne signifie pas que les utilisateurs ont consenti explicitement à cet usage.\r\n\r\n Les informations partagées à des fins professionnelles (CV, publications, commentaires) peuvent être réutilisées hors contexte.\r\n Le consentement est souvent implicite, enfoui dans les conditions d’utilisation.\r\n L’utilisateur perd le contrôle sur ce qu’il partage : il ne sait pas exactement comment ni par qui ses données seront exploitées.\r\n\r\n➡️ Exemple concret : ton texte sur la gestion d’équipe pourrait servir à entraîner une IA d’entreprise sans que tu le saches, ni que ton nom y soit associé.\r\n--\r\n\r\n2. Profilage et reconstitution d’identité\r\n\r\nL’agrégation massive des données permet aux IA d’identifier des schémas comportementaux et professionnels :\r\n\r\n Les algorithmes peuvent déduire des informations sensibles (habitudes de travail, orientation politique, situation financière, etc.) à partir de simples interactions.\r\n Ces profils peuvent être utilisés pour le ciblage commercial, le recrutement automatisé, voire l’évaluation de performance dans certains contextes.\r\n\r\n➡️ Risque : un recruteur ou un système d’IA pourrait juger ton profil ou ton style d’écriture sans ton accord.\r\n--\r\n\r\n3. Appropriation intellectuelle et perte de la valeur de ton contenu\r\n\r\nLes textes, publications et commentaires des utilisateurs servent de matière première à l’entraînement de modèles d’intelligence artificielle.\r\n\r\n Tes contributions (même originales ou expertes) peuvent être intégrées à des IA génératives qui, ensuite, produiront du contenu similaire sans mentionner leur source.\r\n Cela pose une question d’éthique et de propriété intellectuelle : tu deviens fournisseur involontaire de savoir gratuit.\r\n\r\n➡️ Exemple : une IA générative pourrait reformuler ou réutiliser tes analyses dans un contexte commercial sans te citer.\r\n--\r\n\r\n4. Risque de réidentification\r\n\r\nMême si LinkedIn ou Microsoft annoncent que les données sont “anonymisées”, des études montrent qu’il est souvent possible de réidentifier des individus à partir de fragments de données combinées.\r\n\r\n Les publications, les dates d’emploi ou les noms d’entreprises peuvent suffire à retrouver une personne réelle.\r\n Cela peut exposer à du harcèlement, du doxing (divulgation d’infos perso) ou du recrutement non sollicité.\r\n--\r\n\r\n5. Érosion de la confiance numérique\r\n\r\nChaque nouvelle utilisation non transparente des données creuse le fossé entre utilisateurs et plateformes.\r\n\r\n Les professionnels peuvent se censurer, publier moins, ou quitter la plateforme.\r\n Cela nuit à la qualité du réseau et à la diversité des échanges.\r\n\r\n➡️ Risque collectif : LinkedIn perd son rôle de réseau professionnel ouvert, et les utilisateurs deviennent méfiants ou silencieux.\r\n--\r\n\r\n6. Exploitation commerciale asymétrique\r\n\r\nLes utilisateurs fournissent la matière (leurs données), mais ne bénéficient pas des revenus générés par les IA entraînées sur ces données.\r\n\r\n Les plateformes en tirent un profit direct (via les produits IA, la publicité ou les abonnements premium).\r\n Les utilisateurs, eux, deviennent des ressources gratuites sans contrepartie.\r\n--\r\n\r\n7. Sécurité des données à long terme\r\n\r\nUne fois intégrées dans des modèles d’IA, les données ne peuvent pas toujours être effacées.\r\n\r\n Même si tu supprimes ton compte, l’empreinte de tes données peut subsister dans les systèmes d’apprentissage.\r\n Cela entre en tension avec le droit à l’oubli, garanti par le RGPD.\r\n--\r\n\r\nExemples concrets et projections permettant de bien mesurer les conséquences réelles (et à venir) de cette collecte de données par LinkedIn et les IA associées.\r\nVoici une série d’illustrations réalistes, plausibles et documentées, suivies de projections futures si la tendance se poursuit.\r\n\r\n💼 1. Exemple actuel : ton profil devient un “modèle” de compétence\r\n\r\nUn consultant publie régulièrement des analyses sur la transformation digitale. Ses posts sont publics, bien écrits et souvent partagés.\r\n👉 Ces textes peuvent être intégrés (sans qu’il le sache) dans des ensembles de données qui servent à entraîner une IA professionnelle de rédaction ou de recrutement.\r\nRésultat : une IA générative pourrait ensuite produire des articles ou des messages LinkedIn similaires au sien, imitant son ton et sa structure — sans jamais le créditer.\r\n\r\n📍 Projection 2026 : les entreprises paieront pour des outils d’IA “experts en communication LinkedIn”, entraînés sur des millions de publications d’utilisateurs. Ces contenus originaux deviendront des modèles commerciaux... sans rémunération pour leurs auteurs.\r\n--\r\n\r\n🔍 2. Exemple : profilage algorithmique dans le recrutement\r\n\r\nLinkedIn est déjà utilisé pour le tri automatisé des candidatures. En combinant ces données avec des modèles d’IA, une entreprise pourrait prédire les “traits de personnalité” d’un candidat à partir de son profil, de son vocabulaire ou de son historique de publications.\r\n\r\n➡️ Risque concret :\r\nUne IA pourrait écarter un profil jugé “instable” ou “non aligné culturellement” simplement parce qu’elle a repéré des posts critiques sur le management — sans intervention humaine.\r\n\r\n📍 Projection 2027 : des recruteurs utilisent des IA pour “noter” automatiquement les profils selon leur probabilité de succès dans une entreprise, créant des discriminations invisibles et difficilement contestables.\r\n--\r\n\r\n✍️ 3. Exemple : appropriation intellectuelle déguisée\r\n\r\nImaginons une chercheuse en RH qui publie des posts détaillant sa méthode d’évaluation des compétences.\r\nQuelques mois plus tard, une IA professionnelle (issue d’un modèle Microsoft ou OpenAI) reprend des formulations et des idées très proches dans un produit commercial.\r\n\r\n➡️ Risque : sa méthode devient une fonctionnalité d’un logiciel RH, sans reconnaissance ni rémunération.\r\n\r\n📍 Projection 2028 : les IA intègrent massivement du contenu “crowdsourcé” depuis LinkedIn, Reddit ou Medium. Les créateurs deviennent fournisseurs involontaires de savoir, pendant que les entreprises vendent des outils basés sur leurs contributions.\r\n--\r\n\r\n🧠 4. Exemple : inférences comportementales non désirées\r\n\r\nUne IA peut déduire plus que ce que l’utilisateur pense partager.\r\n➡️ Par exemple :\r\n\r\n Un rythme de publication irrégulier peut être interprété comme un “manque de disponibilité”.\r\n Un enchaînement de changements de poste peut être lu comme un “instinct d’instabilité”.\r\n Le ton ou la fréquence des commentaires peut servir à classer les utilisateurs selon leur “influence sociale”.\r\n\r\n📍 Projection 2026-2030 : ces données comportementales nourrissent des scores de réputation professionnelle invisibles, que certaines entreprises ou plateformes utilisent pour classer les candidats, partenaires ou clients potentiels.\r\n--\r\n\r\n💰 5. Exemple : création de produits IA entraînés sur les utilisateurs\r\n\r\nMicrosoft développe des outils d’IA intégrés à LinkedIn Learning ou à Microsoft 365 Copilot.\r\n➡️ Les modèles peuvent s’inspirer des tendances, expressions et structures de pensée des utilisateurs LinkedIn pour proposer des conseils personnalisés (“Voici comment rédiger une offre d’emploi efficace”).\r\n\r\n📍 Projection 2030 :\r\nLes modèles d’IA deviennent si performants qu’ils proposent des stratégies RH, des analyses de marché ou des lettres de motivation entières, entraînées sur les contenus des utilisateurs — mais commercialisées sous licence Microsoft.\r\nLes utilisateurs deviennent littéralement la matière première de produits IA vendus à d’autres professionnels.\r\n--\r\n\r\n🔒 6. Exemple : difficulté d’effacement ou de contrôle\r\n\r\nUn utilisateur décide de supprimer son compte LinkedIn.\r\n➡️ Problème : ses anciens posts, déjà utilisés pour l’entraînement de modèles, ne peuvent pas être “désappris” par ces IA.\r\nLes traces textuelles persistent dans les modèles, parfois indéfiniment.\r\n\r\n📍 Projection 2029 : même avec le droit à l’oubli renforcé, la récupération complète des données dans les modèles devient quasi impossible. Les régulateurs européens devront imposer des procédures d’“oubli algorithmique”, très coûteuses à mettre en œuvre.\r\n--\r\n\r\n🌍 7. Projection sociétale globale : le paradoxe de la transparence\r\n\r\nÀ long terme, la généralisation de ces pratiques pourrait produire un effet de censure douce :\r\n\r\n Les utilisateurs partagent moins d’analyses authentiques, de peur d’être copiés ou profilés.\r\n Les publications deviennent plus neutres, plus polies, moins spontanées.\r\n Le réseau perd de sa valeur humaine et se transforme en vitrine aseptisée.\r\n\r\nEn parallèle, les grandes entreprises technologiques accumulent des quantités massives de données textuelles qui leur donnent un avantage compétitif durable**.\r\nLes utilisateurs, eux, deviennent invisibles dans la chaîne de valeur de l’intelligence artificielle."},"score":0.75,"snippet":"Un matin d’automne, Léa ouvre son compte LinkedIn comme elle le fait chaque jour. Consultante indépendante, elle y partage des réflexions sur le travail à distance, y échange avec des collègues et y recrute parfois des p…","tier":2},{"article":{"uuid":"b7647f3d-0c0a-46ef-815a-cb56e1e95aae","slug":"comment-casser-les-pattes-d-un-etudiant-plein-d-enthousiasme","title":"Comment casser les pattes d’un étudiant plein d’enthousiasme","category":"réflexion","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-04 21:25:49","created_at":"2025-11-04 21:25:49","updated_at":"2025-11-04 21:25:49","plain":"Chronique d’une mise à l’épreuve LinkedInienne\r\n\r\nIl y a sur LinkedIn de petites scènes de théâtre.\r\nDes instants où la fraîcheur, la naïveté et la passion d’un étudiant viennent se frotter à la rigueur — parfois au cynisme — du monde professionnel.\r\n\r\nCette semaine, le héros s’appelle Nathan Lempereur.\r\nÉtudiant en BTS SIO SISR, passionné d’informatique, il publie fièrement :\r\n« Sortie de SrvTools 1.0 !!\r\nJ’ai conçu un outil pour simplifier l’installation et la configuration de serveurs Linux. »\r\n\r\nUn projet open-source, rédigé en Bash, pensé pour aider les débutants et automatiser des tâches.\r\nUn travail concret, fait avec le cœur et la motivation.\r\nBref : le genre de post rafraîchissant qu’on aimerait voir plus souvent.\r\n\r\nMais voilà : LinkedIn n’est pas toujours tendre avec les enthousiastes.\r\nEt la plateforme adore rappeler que le monde professionnel, lui, ne s’émerveille pas — il évalue, dissèque, critique.\r\n--\r\n\r\nActe I – L’innocence du créateur\r\n\r\nNathan partage son outil avec sincérité.\r\nIl détaille son script, ses fonctions, la compatibilité, la licence.\r\nIl répond à tous, poliment, curieusement, avec ses mots à lui.\r\n\r\nSon ton n’est pas celui d’un expert, mais celui de quelqu’un qui ose.\r\nEt rien que pour ça, il méritait des applaudissements.\r\n\r\nMais sur LinkedIn, le tonnerre vient souvent d’ailleurs.\r\n--\r\n\r\nActe II – L’entrée des gardiens du temple\r\n\r\nLe premier commentaire bienveillant arrive, sous la forme d’un « bon boulot, mais ».\r\nToujours ce petit mais, fidèle compagnon des compliments à moitié avalés.\r\n« Bon boulot ! Effectivement, la compatibilité avec d’autres systèmes serait la bienvenue. »\r\n\r\nUn conseil pertinent, certes.\r\nMais déjà, l’équilibre se rompt : Nathan ne soumettait pas une RFC, il partageait sa fierté.\r\n\r\nPuis vient le classique :\r\n« Vous connaissez Ansible ? »\r\n\r\nSous-entendu : ton outil, c’est mignon, mais ça existe déjà — et en mieux, depuis dix ans.\r\nEt quand Nathan répond humblement qu’il ne connaît pas Ansible, on sent presque la salle soupirer.\r\nOh, le pauvre, il ne connaît pas Ansible.\r\n\r\nPourtant, il reste poli, à l’écoute, curieux.\r\nMais la leçon LinkedInienne est lancée : tu ne peux pas simplement être heureux d’avoir fait quelque chose — il faut défendre son utilité devant un jury invisible.\r\n--\r\n\r\nActe III – Les coups de pinceau du réalisme\r\n\r\nD’autres s’invitent dans la discussion.\r\nLes plus pédagogues demandent :\r\n« Comment comptes-tu maintenir les logiciels ? »\r\n« Quels sont les impacts si les versions changent ? »\r\n« Et la cybersécurité, tu y as pensé ? »\r\n\r\nLes plus techniques ajoutent :\r\n« dns-nameservers n’est pas dans le fichier interfaces. »\r\n« apache2, en prod, sans durcissement ? Non. »\r\n\r\nChacun y va de son détail, de son ajustement, de sa remarque.\r\nEt au milieu de tout ça, Nathan reste là — il lit, répond, apprend.\r\nIl ne se vexe pas. Il continue. Parce que lui, il voulait juste partager.\r\n--\r\n\r\nActe IV – LinkedIn, ou la pédagogie à reculons\r\n\r\nCe n’est pas de la méchanceté.\r\nC’est pire : c’est l’habitude d’éteindre la flamme.\r\n\r\nLinkedIn regorge de gens brillants, compétents, expérimentés.\r\nMais trop souvent, ils oublient une chose : l’enthousiasme, ça se protège.\r\nÇa ne se corrige pas, ça s’encourage.\r\n\r\nFace à un jeune qui code un outil, on peut dire :\r\n« Génial, continue ! Et si tu veux aller plus loin, regarde Ansible, ça t’inspirera. »\r\n\r\nOu bien :\r\n« Ça existe déjà, ton code n’est pas durci, tu réinventes la roue. »\r\n\r\nLa première phrase fait grandir.\r\nLa seconde forme les cyniques de demain.\r\n--\r\n\r\nActe V – Ce que Nathan a compris (et que beaucoup ont oublié)\r\n\r\nMalgré les remarques, Nathan reste droit dans ses bottes.\r\nIl remercie, prend note, annonce une version 2.\r\nIl continue à coder, à apprendre, à rêver.\r\n\r\nEt c’est là que l’histoire devient belle :\r\nle garçon n’a pas perdu sa flamme.\r\n\r\nParce qu’il a compris ce que beaucoup oublient :\r\nle progrès ne vient pas de ceux qui savent tout, mais de ceux qui essaient.\r\n--\r\n\r\nÉpilogue – Pour ceux qui cassent les pattes sans le vouloir\r\n\r\nLa prochaine fois qu’un étudiant publie fièrement son petit outil, son script, sa maquette,\r\nsouvenez-vous : il ne cherche pas un audit de sécurité.\r\nIl cherche un peu de reconnaissance.\r\n\r\nEt peut-être que dans dix ans, ce même étudiant sera ingénieur, architecte, CTO.\r\nEt qu’il se souviendra du jour où, au lieu de lui tendre la main,\r\non lui a tendu une liste de dépendances manquantes.\r\n\r\nAlors, la prochaine fois, laissez-le être fier.\r\nCorrigez, si vous voulez — mais surtout, encouragez.\r\n\r\nParce que casser des pattes, c’est facile.\r\nFaire pousser des ailes, c’est autrement plus noble.\r\n\r\nEt puis, après tout…\r\npeut-être que Nathan préfère le Bash et APT à Ansible, npm ou autres —\r\net c’est très bien comme ça.\r\n--\r\n\r\n🧠 Morale de l’histoire\r\n\r\nSur LinkedIn, il y a ceux qui montrent ce qu’ils savent faire,\r\net ceux qui montrent qu’ils savent mieux.\r\nLes premiers construisent.\r\nLes seconds commentent.\r\n\r\n🔗 Post original de Nathan Lempereur"},"score":0.75,"snippet":"Chronique d’une mise à l’épreuve LinkedInienne\r\n\r\nIl y a sur LinkedIn de petites scènes de théâtre.\r\nDes instants où la fraîcheur, la naïveté et la passion d’un étudiant viennent se frotter à la rigueur — parfois au cyni…","tier":2},{"article":{"uuid":"dfdc14e3-cd61-486b-89d5-6e5da9d6db89","slug":"tout-savoir-sur-le-tbw-teraoctets-ecrits","title":"Tout savoir sur le TBW : Téraoctets Écrits","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-02-09 09:17:23","created_at":"2025-02-09 09:17:23","updated_at":"2025-02-09 09:17:23","plain":"Le TBW, ou Téraoctets Écrits, est une métrique clé pour évaluer la durée de vie des disques SSD (Solid State Drive). Il s'agit d'une mesure indiquant la quantité totale de données qu'un SSD peut écrire avant de commencer à risquer des défaillances. Le TBW correspond au volume total de données que le fabricant garantit pouvoir être écrit sur un SSD avant que les performances ou la fiabilité ne se dégradent. Par exemple, un SSD avec un TBW de 300 To signifie qu'il peut écrire jusqu'à 300 téraoctets de données sur sa durée de vie avant de dépasser sa garantie. Le TBW est une valeur essentielle, car contrairement aux disques durs traditionnels (HDD), les SSD utilisent des cellules de mémoire flash qui s'usent à chaque cycle d'écriture/effacement. Une fois les cellules trop usées, elles deviennent inutilisables. Les fabricants intègrent des technologies comme le wear leveling pour distribuer uniformément les écritures et prolonger la durée de vie du disque. Le TBW dépend de plusieurs facteurs : 1. Technologie de mémoire flash :\nSLC (Single-Level Cell) : Très durable, mais coûteuse. Chaque cellule peut supporter 90 000 à 100 000 cycles.\nMLC (Multi-Level Cell) : Plus courante, environ 3 000 à 10 000 cycles par cellule.\nTLC (Triple-Level Cell) : Offre 500 à 3 000 cycles par cellule. La plupart des SSD grand public l'utilisent.\nQLC (Quad-Level Cell) : Moins durable, entre 150 et 1 000 cycles, mais moins cher. 2. Capacité du SSD : Les SSD de plus grande capacité ont généralement un TBW plus élevé, car ils disposent de plus de cellules pour répartir les écritures. Si vous effectuez des tâches nécessitant de nombreuses écritures (montage vidéo, machine virtuelle, serveurs de données, etc.), un TBW élevé est nécessaire. Voici quelques exemples de TBW garantis pour des SSD typiques (ces valeurs varient selon le modèle et la marque) :\nSSD 250 Go : 100 à 150 TBW\nSSD 500 Go : 300 TBW\nSSD 1 To : 600 TBW\nSSD 2 To : 1 200 TBW Les SSD professionnels ou destinés aux serveurs peuvent offrir des TBW beaucoup plus élevés (plusieurs pétaoctets écrits). Le TBW permet de prédire la durée de vie d'un SSD en fonction de vos habitudes. Par exemple, si vous écrivez 50 Go par jour, un SSD avec un TBW de 300 To durera environ 16 ans (300 To ÷ 50 Go ÷ 365 jours). Pour un utilisateur moyen qui écrit 20 Go par jour (navigation, streaming, jeux, etc.), même un SSD avec un TBW de 100 To peut durer plus de 13 ans. Dans un environnement de travail nécessitant 300 Go/jour (édition vidéo, bases de données), un SSD avec un TBW de 600 To durerait environ 5 ans. Surveiller le TBW actuel sous Linux\nLancez la commande suivante pour analyser les données SMART de votre SSD : Pour les SSD NVMe, utilisez cette commande : Exemple de sortie pour un disque NVMe\nData Units Written :\nIl a été écrit 776 903 unités de données, ce qui correspond à 397 Go. Cette valeur est directement lisible et ne nécessite aucune conversion supplémentaire pour les SSD NVMe. Le SSD a donc une usure très faible, ce qui est confirmé par le champ Percentage Used.\nPercentage Used :\nLa valeur 0% indique que le SSD n'a quasiment pas été utilisé par rapport à sa durée de vie estimée. Cela signifie que votre SSD est en excellent état et loin d'atteindre ses limites d'écriture.\nPower On Hours :\nLe SSD a fonctionné pendant 369 heures, ce qui équivaut à environ 15 jours de fonctionnement continu. Cela indique également qu'il est encore relativement peu utilisé.\nAutres indicateurs rassurants : Critical Warning : 0x00 (aucun problème critique détecté). Available Spare : 100% (tous les blocs de réserve sont disponibles, aucun n'a encore été utilisé pour compenser des blocs défectueux). Media and Data Integrity Errors : 0 (aucune erreur d'intégrité détectée).\nTempérature : Temperature Sensor 1 indique 52°C, ce qui est un peu élevé mais toujours dans la plage normale pour un SSD NVMe en fonctionnement. Temperature Sensor 2 est plus bas, à 31°C. ce qui est un peu élevé. Bien ventiler le SSD surtout s'il est utilisé pour des tâches intensives. Autre exemple de sortie pour un disque SSD\nPowerOnHours (9) : Le SSD a fonctionné pendant 6810 heures (soit environ 284 jours si utilisé 24h/24).\nPowerCycleCount (12) : Il a été mis sous tension 631 fois, ce qui indique un usage fréquent mais sans problèmes.\nTemperatureCelsius (194) : La température actuelle est de 13°C, avec un minimum de 5°C et un maximum de 32°C. Cela indique un bon environnement pour le SSD.\nTotalLBAsWritten (241) : La valeur brute de TotalLBAsWritten est 7348. Cela représente le nombre total de blocs logiques écrits. Conversion des LBA (Logical Block Address) en téraoctets écrits** Chaque LBA correspond généralement à 512 octets. Donc, les données totales écrites en octets sont : Convertissons cela en téraoctets : Que se passe-t-il lorsque le TBW est atteint ?\nLorsque le TBW d’un SSD est atteint, cela ne signifie pas que le disque cesse immédiatement de fonctionner. La plupart des SSD continuent de fonctionner en mode lecture seule, mais les écritures supplémentaires risquent de provoquer des erreurs ou des pertes de données. Les constructeurs garantissent généralement les performances jusqu’à ce seuil, mais le disque peut rester utilisable au-delà, avec des risques accrus."},"score":0.75,"snippet":"Le TBW, ou Téraoctets Écrits, est une métrique clé pour évaluer la durée de vie des disques SSD (Solid State Drive). Il s'agit d'une mesure indiquant la quantité totale de données qu'un SSD peut écrire avant de commencer…","tier":2},{"article":{"uuid":"a4c3ae73-2f8c-42e9-86c5-7b978f191230","slug":"installer-fedora-linux-41","title":"Installer Fedora Linux 41","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-01-28 12:50:08","created_at":"2025-01-28 12:50:08","updated_at":"2025-01-28 12:50:08","plain":"Rendez-vous sur la page officelle française de Fedora. Site de téléchargement de Fedora en Français Fedora propose plusieurs éditions adaptées à différents usages :\nWorkstation : Conçue pour les ordinateurs de bureau et les portables, idéale pour les développeurs et les utilisateurs quotidiens.\nServer : Destinée aux serveurs avec les dernières technologies open source.\nIoT : Pour les projets liés à l'Internet des objets.\nCloud : Images optimisées pour les infrastructures cloud.\n \nJe télécharge le Live ISO Fedora Linux 41 Workstation Utiliser un nouveau disque dur (de préférence un SSD)\nPour un nouveau départ, il est fortement conseillé d'utiliser un disque dur ou un SSD neuf pour l'installation de votre système. Cette approche présente plusieurs avantages. Tout d'abord, cela permet de conserver les données et configurations existantes sur votre disque actuel, garantissant ainsi une transition fluide et sans risques de perte ou de corruption de fichiers. De plus, il est important de noter que les disques durs classiques (HDD) sont des pièces d'usure qui peuvent perdre en fiabilité avec le temps. Pour éviter tout problème futur, il est recommandé de vérifier l'état de votre disque actuel avant toute réutilisation en utilisant un outil comme smartctl. Cet utilitaire permet d’analyser les indicateurs SMART (Self-Monitoring, Analysis, and Reporting Technology) et de détecter les signes de défaillance imminente. Si des alertes ou anomalies sont détectées, un remplacement est fortement conseillé. Si vous envisagez d'opter pour un SSD (Solid State Drive), sachez qu'ils offrent des avantages considérables en termes de rapidité, fiabilité et résistance aux chocs. Cependant, il est utile de préciser que les SSD sont garantis pour un certain volume de données écrites au cours de leur durée de vie (souvent exprimé en téraoctets écrits, ou TBW – TeraBytes Written). Par exemple, un SSD standard peut être garanti pour 150 à 300 TBW, ce qui est largement suffisant pour un usage classique (système, applications et fichiers personnels). Toutefois, pour des usages intensifs comme l'édition vidéo ou des traitements de données massifs, il peut être judicieux de surveiller ce paramètre et d’opter pour un modèle conçu pour des écritures élevées. Un SSD de 500 Go constitue un excellent compromis pour installer Fedora ainsi que vos applications et fichiers personnels. En choisissant un disque neuf et en tenant compte des spécifications d'écriture du SSD, vous assurez une expérience utilisateur optimale et minimisez les risques liés à un matériel vieillissant ou inadapté. Tout savoir sur le TBW : Téraoctets Écrits Options recommandées selon votre configuration : Pour les ordinateurs équipés d’un port SATA : Crucial BX500 1To SSD 2.5\" SATA – jusqu'à 540Mo/s, Compatible PC et Portable, 3D NAND, CT1000BX500SSD1 PNY CS900 SSD Interne SATA III, 2.5 Pouces, 500Go, Vitesse de Lecture jusqu'à 550MB/s Pour les cartes mères compatibles M.2 2280 : Crucial P3 Plus SSD 1To PCIe Gen4 NVMe M.2 SSD Interne, Jusqu’à 5.000 Mo/s, Compatible avec Ordinateur Portable et de Bureau, Disque Dur SSD - CT1000P3PSSD801 Préparer une clé USB Linux amorçable\nAprès avoir téléchargé l'image ISO de Fedora Linux 41, il faut créer une clé USB amorçable avec Fedora Linux à l'aide de l'outil Ventoy, qui permet de gérer facilement plusieurs images ISO sur un même support. Une fois la clé configurée avec l'image ISO, redémarrez l'ordinateur pour lancer l'installation depuis ce support. Grâce à Ventoy, le système a reconnu l'image ISO. Site de Ventoy Installer Fedora Linux\nDans l’environnement live, l’installateur Fedora vous guidera étape par étape. Les étapes incluent :\nChoisir les paramètres de base : langue, disposition du clavier, fuseau horaire.\nSélectionner le nouveau SSD comme disque cible pour l’installation. Veillez à bien vérifier que Fedora est installé sur le SSD neuf et non sur l’ancien disque, surtout si ce dernier contient encore des données ou un système d’exploitation.\nPermettre à l’installateur de partitionner automatiquement le SSD (option conviviale pour la plupart des utilisateurs). J'ai personnalisé les paramètres d'installation du clavier (Français (variante)), des partitions, fuseaux horaires... Après environ dix minutes d'attente, l'installation de Fedora s'est achevée avec succès. Le système est désormais prêt à l'emploi. Le PC vous invitera à retirer la clé USB et à redémarrer. Fedora démarrera alors depuis le nouveau SSD. Il reste toutefois quelques actions à effectuer dont la configuration de Fedora par le programme de configuration. Mettre à jour votre système et configurer les mises à jour automatiques\nGarder votre système à jour est essentiel pour assurer sécurité, stabilité et profiter des dernières fonctionnalités de Fedora Linux. Pour les utilisateurs qui préfèrent le terminal, le gestionnaire de paquets DNF simplifie la gestion des mises à jour. Ouvrez un terminal et exécutez : Cette commande répertorie toutes les mises à jour disponibles et vous demande de confirmer leur installation. Installez le package dnf-automatic qui gère les mises à jour en arrière-plan : Activez et démarrez le service de mise à jour automatique : Vous pouvez ajuster les paramètres dans le fichier de configuration : Modifiez des options comme applyupdates ou downloadupdates selon vos besoins. Programmes complémentaires et paramétrage complémentaires\nChanger le nom de son ordinateur Ouvrir les paramètres Réseau. Modifier la configuration : 1. Sélectionnez votre connexion réseau.\n1. Cliquez sur \"Modifier\".\n1. Accédez à l'onglet IPv6.\n1. Réglez le mode sur Ignorer ou Désactivé.\n-- Activer les dépots RPM Fusion\nRPM Fusion founit les paquets complémentaires de programme pour Fedora Libre ou non, comprenant des logiciels multimédia, jeux ou pilotes. Ouvrir un Terminal et executez la commande suivante pour activer le dépot Free RPM Fusion (pour les logiciels sous licence libre) : Ouvrir un Terminal et executez la commande suivante pour activer le dépot Free RPM Fusion (pour les logiciels sous licence non-libre) :\n-- Activer le dépôt Rémi's RPM repository Installer VLC\nPour installer VLC, le lecteur multimédia polyvalent, sur Fedora, ouvrez un terminal et exécutez la commande suivante : Cette commande installe le lecteur VLC ainsi que tous les plugins disponibles pour garantir une compatibilité maximale avec une large gamme de formats audio et vidéo. Une fois l’installation terminée, VLC sera prêt à l’emploi, vous permettant de lire vos fichiers multimédias en toute simplicité et sans configuration supplémentaire.\n-- Activer le H.264 dans Firefox\nLes paquets nécessaires à l'utilisation du H.264 doit être installés. Il est important d'activer certaines options dans Firefox pour que le codec H.264 soit utilisé correctement. Voici les étapes à suivre : 1. Ouvrir la page de configuration avancée de Firefox : \n1. Dans la barre d’adresse, tapez et appuyez sur Entrée. \n1. Acceptez l’avertissement pour accéder aux paramètres avancés. 2. Rechercher et activer les options liées à OpenH264 : \n1. Recherchez les clés suivantes une par une dans la barre de recherche des préférences avancées : \n 1. \n 1. \n1. Assurez-vous que leur valeur est définie sur . Si ce n’est pas le cas, double-cliquez dessus pour les activer. 3. Vérifier la configuration : \n1. Retournez sur un site qui utilise le codec H.264 (comme une plateforme de streaming ou un test vidéo). \n1. Vérifiez que les vidéos se lisent sans problème. Une fois ces étapes terminées, Firefox sera configuré pour prendre en charge H.264 grâce à OpenH264 sur Fedora.\n-- Installer d'autres applications avec dnf et suppression d'autres\n-- Installer d'autres applications avec Flathub\n-- Pour lancer Schildi Pour rendre ces options permanentes lors de l’exécution d’une application Flatpak comme SchildiChat, vous pouvez modifier le fichier de configuration de l’application dans le dossier Flatpak afin d’y inclure ces options. 1. Créez ou modifiez un fichier d’exécution dédié : nano ~/.var/app/chat.schildi.desktop/config/environment 2. Ajoutez-y les variables nécessaires, par exemple : 3. Enregistrez le fichier.\n-- Activer toutes les tâches planifiée personnalisées\nLes scripts personnalisés liés à des tâches planifiées ou des services spécifiques à l'utilisateur doivent être stockés dans le répertoire . Ce répertoire est dédié à la gestion des unités Systemd spécifiques à l'environnement utilisateur, permettant de définir des services, des timers, ou d'autres unités sans nécessiter de privilèges administratifs. En plaçant vos fichiers ici, vous vous assurez qu'ils sont isolés de la configuration système globale, ce qui favorise une meilleure organisation et un contrôle individualisé. De plus, cela permet d'utiliser la commande pour gérer vos unités, garantissant qu'elles s'exécutent uniquement pour l'utilisateur concerné. Cette pratique est idéale pour les tâches comme des sauvegardes automatiques ou des scripts de maintenance qui doivent rester indépendants des autres utilisateurs ou des paramètres système globaux. Pour activer tous les scripts présents dans , vous pouvez utiliser une boucle dans une seule ligne de commande BASH comme ceci : Explication :\n: Parcourt tous les fichiers avec l'extension dans le répertoire spécifié.\n: Extrait uniquement le nom du fichier sans le chemin.\n: Active et démarre chaque timer immédiatement. Cette commande active tous les timers trouvés dans le répertoire en une seule exécution. 🚀 La commande systemctl permet de lister tous les timers définis dans l'environnement utilisateur, qu'ils soient actifs ou non. Les timers sont des unités Systemd qui permettent de planifier l'exécution de services à des intervalles spécifiques ou à des moments précis. Cette commande affiche des informations détaillées sur chaque timer, telles que son nom, sa dernière exécution, la prochaine exécution prévue, et l'état du service associé. L'option garantit que tous les timers, y compris ceux qui ne sont pas actuellement actifs ou qui ont été désactivés, sont inclus dans la liste. C'est un outil pratique pour vérifier l'état de vos timers, identifier les timers inactifs ou désactivés, et avoir une vue d'ensemble sur toutes les tâches planifiées dans votre session utilisateur.\n-- Autres actions à prévoir\nMonter les partages NFS\nInstaller imprimante"},"score":0.75,"snippet":"Rendez-vous sur la page officelle française de Fedora. Site de téléchargement de Fedora en Français Fedora propose plusieurs éditions adaptées à différents usages :\nWorkstation : Conçue pour les ordinateurs de bureau et …","tier":2},{"article":{"uuid":"357b1e51-4768-494e-a3ec-10c6e145d12e","slug":"2024-07-04-raspberry-pi-os-update","title":"Mise à Jour de Raspberry Pi OS (2024-07-04)","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2024-07-05 17:17:47","created_at":"2024-07-05 17:17:47","updated_at":"2024-07-05 17:17:47","plain":"La Fondation Raspberry Pi a fait sensation aujourd'hui en dévoilant une nouvelle mise à jour de leur système d'exploitation phare, Raspberry Pi OS. Basé sur Debian, ce système est le cœur des ordinateurs monocarte Raspberry Pi, utilisés par des millions de passionnés et professionnels à travers le monde. La version 2024-07-04 apporte une foule d'améliorations et de nouvelles fonctionnalités qui raviront les utilisateurs. Des Améliorations de l'Interface Utilisateur\nParmi les nouveautés les plus marquantes, on trouve une mise à jour du panneau et du gestionnaire de fichiers PCManFM, désormais capable de gérer plus de deux bureaux. Cette flexibilité accrue permet aux utilisateurs de personnaliser leur environnement de travail de manière encore plus poussée. En parallèle, le panneau intègre désormais la possibilité de personnaliser le compositeur de fenêtres Wayland labwc, qui est maintenant installé par défaut comme alternative à Wayfire. Les utilisateurs peuvent sélectionner labwc comme compositeur Wayland par défaut via l'outil raspi-config, rendant la configuration de leur interface plus accessible. Nouvelles Fonctionnalités dans raspi-config\nL'outil de configuration raspi-config n'est pas en reste avec cette mise à jour. Il prend désormais en charge les options de configuration du clavier et la vitesse PCIe. De plus, l'assistant de démarrage piwiz a été amélioré pour permettre l'activation ou la désactivation de Raspberry Pi Connect, une nouvelle fonctionnalité de support à distance intégrée également à l'installateur de logiciels recommandés et aux utilitaires rc-gui. Support et Compatibilité Étendus\nRaspberry Pi OS 2024-07-04 intègre également des mises à jour pour raspberrypi-ui-mods, notamment la prise en charge des nouveaux écrans tactiles et le support de systemd-inhibit pour la gestion du bouton d'alimentation matériel sur le Raspberry Pi 5. Les modifications apportées à raspberrypi-sys-mods incluent une nouvelle règle udev pour permettre aux utilisateurs de modifier le rétroéclairage et d'augmenter la taille du fichier d'échange. Correctifs et Optimisations\nCette version apporte des correctifs significatifs, notamment pour le compositeur Wayfire Wayland qui a été patché pour éviter les crashs lors de l'ouverture de multiples fenêtres Xwayland et résoudre un bug d'écran tactile. Le gestionnaire de fichiers PCManFM a également été corrigé pour éviter les crashs pendant certaines opérations de glisser-déposer. Nouvelles Capacités pour les Développeurs et Utilisateurs Avancés\nL'installateur gui-pkinst propose maintenant un support de liste blanche pour restreindre l'installation à certains packages spécifiés. L'outil pishutdown utilise la commande pkill pour fermer le bureau, et le serveur VNC WayVNC améliore la gestion des écrans virtuels et le chiffrement. Téléchargement et Disponibilité\nRaspberry Pi OS 2024-07-04 est alimenté par le noyau Linux 6.6.31 LTS et est livré avec les dernières versions des navigateurs web Chromium (125.0.6422.133) et Mozilla Firefox (126.0). Cette mise à jour est disponible dès maintenant via l'utilitaire Raspberry Pi Imager et peut également être téléchargée sur le site officiel de la Fondation Raspberry Pi. Que vous soyez un utilisateur débutant ou un expert en Raspberry Pi, cette mise à jour promet d'améliorer votre expérience et d'ouvrir de nouvelles possibilités pour vos projets. Ne manquez pas de l'essayer dès aujourd'hui !"},"score":0.75,"snippet":"La Fondation Raspberry Pi a fait sensation aujourd'hui en dévoilant une nouvelle mise à jour de leur système d'exploitation phare, Raspberry Pi OS. Basé sur Debian, ce système est le cœur des ordinateurs monocarte Raspbe…","tier":2},{"article":{"uuid":"361716cb-659e-47d8-9e88-7e4b9600c085","slug":"2024-05-13-date-articles","title":"Date des articles","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2024-05-13 06:13:10","created_at":"2024-05-13 06:13:10","updated_at":"2024-05-13 06:13:10","plain":"Il est tout à fait naturel de vouloir connaître la date de publication d'un article lorsque vous naviguez sur Internet. Cela vous permet de mieux comprendre le contexte dans lequel il a été écrit et de déterminer s'il est toujours pertinent ou à jour. De nombreux sites web placent la date de publication à la fin de l'article ou dans les métadonnées de la page, souvent près du titre ou en bas de la page. En tant que rédacteur, il est essentiel d'inclure la date de publication dans vos articles pour plusieurs raisons : 1. Transparence : Indiquer la date de publication montre que vous êtes transparent sur la chronologie de vos contenus. Cela renforce la confiance des lecteurs envers votre site ou votre plateforme. 2. Pertinence : Les lecteurs veulent souvent savoir si l'information qu'ils lisent est à jour. La date de publication les aide à déterminer la pertinence de l'article par rapport à l'actualité ou aux évolutions récentes du sujet traité. 3. Crédibilité : L'inclusion de la date de publication renforce la crédibilité de votre contenu. Cela montre que vous vous souciez de fournir des informations précises et fiables, et que vous êtes engagé dans des pratiques journalistiques ou rédactionnelles responsables. 4. Référencement : Les moteurs de recherche tiennent souvent compte de la fraîcheur du contenu lors du classement des résultats. En incluant la date de publication, vous aidez les moteurs de recherche à mieux comprendre la pertinence temporelle de votre article. 5. Facilité de navigation : Pour les lecteurs réguliers, la date de publication peut servir de repère pour suivre l'évolution de vos contenus et identifier de nouveaux articles. Pour améliorer le référencement et la visibilité de votre contenu, il est conseillé de suivre certaines bonnes pratiques, y compris en ce qui concerne la gestion des dates dans vos articles. Voici quelques conseils techniques qui peuvent contribuer à améliorer le référencement (SEO) de vos contenus : 1. Inclure la date dans l'URL : Si possible, intégrez la date de publication dans l'URL de votre article. Cela permet aux moteurs de recherche et aux utilisateurs de comprendre rapidement la fraîcheur du contenu. Voici quelques suggestions de formats de date couramment utilisés dans les URL :\nAAAA/MM/JJ : Utiliser l'année, le mois et le jour dans cet ordre est un format clair et facilement compréhensible. Par exemple : .\nAAAA-MM-JJ : Ce format est également largement accepté et peut être plus compact. Par exemple : .\nJJ-MM-AAAA : Ce format est plus courant dans certaines régions, mais il est moins recommandé car il peut prêter à confusion, surtout dans un contexte international où l'ordre des dates varie. Par exemple : .\nNom du mois abrégé : Pour une version plus conviviale, vous pouvez utiliser le nom abrégé du mois plutôt que son numéro. Par exemple : . 2. Utiliser des balises structurées : Utilisez les balises HTML appropriées pour marquer la date de publication dans le code source de votre page. Les balises telles que avec l'attribut peuvent aider les moteurs de recherche à interpréter la date plus efficacement. 3. Utiliser le schéma de données : Implémentez le schéma de données structurées approprié pour marquer la date de publication. Par exemple, utilisez le schéma \"Article\" avec la propriété \"datePublished\" pour indiquer la date de publication de votre contenu. 4. Configurer la sitemap : Assurez-vous que votre sitemap XML inclut la date de dernière modification de chaque page. Cela permet aux moteurs de recherche de comprendre quand vos contenus ont été mis à jour pour la dernière fois. 5. Favoriser les mises à jour régulières : Publiez du contenu de manière régulière et mettez à jour vos articles existants si nécessaire. Les moteurs de recherche valorisent souvent les sites qui proposent un contenu frais et actualisé. 6. Supprimer ou mettre à jour les contenus obsolètes : Si un contenu devient obsolète, envisagez de le supprimer ou de le rediriger vers une version plus récente ou mise à jour. Cela contribue à maintenir la qualité de votre site et à éviter que les utilisateurs ne tombent sur des informations périmées. En suivant ces recommandations techniques, vous pouvez aider à optimiser vos articles pour le référencement et à améliorer leur visibilité dans les résultats de recherche."},"score":0.75,"snippet":"Il est tout à fait naturel de vouloir connaître la date de publication d'un article lorsque vous naviguez sur Internet. Cela vous permet de mieux comprendre le contexte dans lequel il a été écrit et de déterminer s'il es…","tier":2},{"article":{"uuid":"867e5c70-e40c-48b3-94a2-761be37fdf8b","slug":"update-locale","title":"update-locale","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2024-03-27 07:10:23","created_at":"2024-03-27 07:10:23","updated_at":"2024-03-27 07:10:23","plain":"update-locale est un programme qui met à jour les fichiers de configuration du système pour définir les paramètres régionaux. Ces paramètres contrôlent des éléments comme la langue de l'interface utilisateur, le format de la date et de l'heure, le format des nombres, etc Erreur : cannot change locale Cette erreur indique que le shell (dans ce cas, Bash) ne peut pas changer la locale en français avec le jeu de caractères UTF-8 (fr_FR.UTF-8). En exécutant la commande , vous générez et installez les paramètres régionaux pour la langue française avec le jeu de caractères UTF-8. Cela signifie que vous créez les fichiers de configuration nécessaires pour que le système prenne en charge correctement la langue française avec les caractères UTF-8."},"score":0.75,"snippet":"update-locale est un programme qui met à jour les fichiers de configuration du système pour définir les paramètres régionaux. Ces paramètres contrôlent des éléments comme la langue de l'interface utilisateur, le format d…","tier":2},{"article":{"uuid":"c5119921-464f-41ed-8433-b5aec8db3af7","slug":"cle-wifi-linux","title":"Wifi pour Linux en 2024","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2024-01-14 06:50:08","created_at":"2024-01-14 06:50:08","updated_at":"2024-01-14 06:50:08","plain":"Il y a des cartes Wifi qui sont mieux supportées par Linux, souvent dues à la compatibilité de leurs chipsets avec les drivers disponibles dans les distributions Linux. En général, les cartes Wifi n'ont pas de problèmes de compatibilité majeurs avec Linux, car la plupart utilisent des standards de communication bien établis. Cependant, certaines fonctionnalités spécifiques, des performances optimales ou la compatibilité de la carte Wifi peuvent dépendre du support du chipset par le noyau Linux. Les pilotes intégrés au noyau de Linux sont préférables aux pilotes externes au noyau pour la plupart des utilisateurs et des cas d'utilisation Ce qu'il faut chercher :\nCompatibilité avec le noyau Linux : Certains chipsets sont mieux pris en charge que d'autres. Les chipsets les plus courants comme ceux de SanDisk, Kingston, et Toshiba tendent à avoir un bon support.\nDocumentation du fabricant : Certains fabricants indiquent explicitement la compatibilité avec Linux ou fournissent des pilotes pour certaines distributions.\nPour les clés USB, normes USB : USB 2.0, USB 3.0, USB 3.1, etc. La prise en charge des différentes normes par votre système Linux peut influencer les performances.\nCommunauté Linux : Les forums et les sites dédiés à Linux sont de bonnes ressources pour trouver des avis sur la compatibilité des différents modèles de clés USB. Les informations ci-dessous peuvent nécessiter une familiarité avec le terminal et les commandes de base Linux. Quelques adresses :\nLes adaptateurs WiFi USB pris en charge par les pilotes Linux intégrés au noyau.\nBest USB WiFi Adapters for Linux (Review) in 2022 Quelques références\nBrosTrend AC3L Linux WiFi Adapter\nBrosTrend Linux USB Clé WiFi Adaptateurs, PC avec Ubuntu, Mint, Debian, Kali, Raspbian, Lubuntu, Xubuntu, Mate, Zorin, Raspberry Pi 2+, Windows11, 1200Mbps, Longue Portée 2 X 5dBi External Antennas La BrosTrend 1200Mbps USB WiFi Adapter est conçue pour offrir une connectivité réseau à haute vitesse et une meilleure portée grâce à ses deux antennes externes 5dBi. Voici quelques infos pour installer et configurer l'adaptateur sur un système Linux. Pour l'installation de la clé BrosTrend AC3L Linux WiFi Adapter sous Linux, les noyaux Linux (>= 6.2) incluent leurs propres pilotes, ce qui permet leur fonctionnement immédiat dans les distributions récentes.\nPour connaître la version de votre noyau, exécutez la commande . Les pilotes livrés avec le noyau ne sont pas encore aussi aboutis que ceux de BrosTrend, donc si vous rencontrez des problèmes, utilisez leur installateur pour les remplacer. Le processus d'installation nécessite une connexion Internet initiale :\n sh -c 'wget linux.brostrend.com/install -O /tmp/install && sh /tmp/install' Pour toute assistance ou en cas de problème, la communauté Linux et le support de BrosTrend sont à votre disposition pour vous guider. Support et Documentation: Consultez la documentation de BrosTrend pour des problèmes spécifiques à l'adaptateur. https:linux.brostrend.com/ Antennes Externes: Assurez-vous que les antennes sont correctement connectées et orientées pour une meilleure réception. TP-Link TL-WN823N\nTP-Link Clé WiFi Puissante N300 Mbps, mini adaptateur USB wifi, dongle wifi, Bouton WPS, compatible avec Windows 11/10/8.1/8/7/XP, Mac OS X 10.9-10.13, Linux , Noir, TL-WN823N Le TP-Link TL-WN823N est un mini adaptateur USB WiFi offrant une vitesse allant jusqu'à 300 Mbps, idéal pour les jeux en ligne ou le streaming vidéo HD. Compatible avec une multitude de systèmes d'exploitation, son installation sous Linux peut varier en fonction de la distribution utilisée. Installer le TP-Link TL-WN823N sous Linux peut nécessiter un peu de travail en ligne de commande, mais une fois configuré, il offre une connexion stable et rapide. Assurez-vous de suivre les étapes spécifiques à votre distribution  ou . Consulter la communauté Linux pour obtenir de l'aide en cas de problème. Support et Documentation: La documentation officielle peut offrir des conseils supplémentaires spécifiques à votre modèle. https:www.tp-link.com/fr/support/download/tl-wn823n/ Bouton WPS: Si votre routeur a un bouton WPS, vous pouvez l'utiliser pour une connexion facile. BrosTrend AX4L et AX1L\nAX1800 Clé WiFi 6 USB Linux\nAX1800 Clé WiFi 6 USB Longue Portée Linux La BrosTrend AX4L, avec sa capacité de 1800 Mbps et l'intégration de la technologie WiFi 6, se distingue par sa performance en termes de vitesse et de portée, grâce notamment à ses antennes externes qui améliorent la qualité et la stabilité du signal sur de longues distances. Cela la rend particulièrement adaptée pour des utilisateurs recherchant une connexion réseau rapide et fiable, que ce soit pour du streaming de contenu en haute définition, des jeux en ligne, ou tout autre activité nécessitant une bande passante élevée. En revanche, la AX1L, sans antennes externes, pourrait être plus adaptée pour des usages standards avec une préférence pour un design plus compact et discret. Chacun de ces modèles a donc ses avantages spécifiques, à considérer en fonction des besoins et de l'environnement d'utilisation. Systèmes d'exploitation pris en charge sous Linux : Compatible avec les kernels jusqu'à la version 6.5, y compris Ubuntu de la version 16.04 à la 23.10 (toutes variantes), Raspberry Pi OS, Debian de la version 8 à la 12, Linux Mint de la version 18 à la 21, LMDE de la version 1 à la 6, ainsi que Pop!OS, Zorin, MX Linux, Linux Lite, elementary OS et bien d'autres. Le processus d'installation nécessite une connexion Internet initiale et peut nécessiter une familiarité avec le terminal et les commandes de base :\n sh -c 'wget linux.brostrend.com/install -O /tmp/install && sh /tmp/install' Distributions Linux Non Supportées : Actuellement NON compatible avec Kali Linux, deepin, RHEL, CentOS, openSUSE Leap, OpenWrt, Guix, Puppy, Tails, Endless OS, LibreELEC, OSMC, SteamOS. Il est important de noter que, en raison des contraintes liées à certaines versions de Linux, j'ai des réserves concernant le choix des modèles AX1L et AX4L de la gamme BrosTrend. Ces modèles ne sont pas compatibles avec certaines distributions Linux, ce qui peut limiter l'accès aux avancées en matière de connectivité réseau, telles que le WiFi 6, connu pour sa vitesse et son efficacité accrues. Il est donc crucial de vérifier attentivement la compatibilité matérielle et logicielle lors de la sélection d'adaptateurs WiFi pour des systèmes spécifiques, afin de garantir une expérience utilisateur optimale. Support et Documentation: Consultez la documentation de BrosTrend pour des problèmes spécifiques à l'adaptateur. https:linux.brostrend.com/ Étapes d'installation génériques\n0. Prérequis\nSystème Linux: Assurez-vous que votre système est à jour.\nPermissions: Droits d'administrateur pour l'installation des paquets.\nInformation du système: Connaître le type de kernel et la version du système. 1. Connexion de l'adaptateur Branchez la clé USB Wifi sur un port USB disponible de votre ordinateur. 2. Vérification de la reconnaissance de l'appareil Ouvrez le terminal et tapez la commande suivante pour vérifier si le système reconnaît l'adaptateur: Recherchez une entrée correspondant à votre clé USB Wifi ou à l'ID de l'appareil. 3. Installation des dépendances Avant d'installer le pilote, vous devrez peut-être installer des paquets prérequis tels que build-essential et linux-headers. Utilisez le gestionnaire de paquets de votre distribution pour les installer. 4. Téléchargement et installation du pilote Rendez-vous sur le site officiel du constructeur et téléchargez le pilote correspondant à votre modèle et à la version de votre kernel. Décompressez l'archive et lisez le fichier README pour les instructions spécifiques. En général, les étapes suivantes sont requises: 1. Naviguez dans le dossier du pilote décompressé.\n1. Compilez et installez le pilote à l'aide des commandes make et make install. 5. Chargement du module du pilote Après l'installation, chargez le module du pilote en utilisant la commande: 6. Configuration de la connexion WiFi Vous pouvez utiliser l'interface graphique de gestion réseau de votre distribution ou la commande pour configurer votre réseau sans fil. Dépannage et support** Consultez les forums: Les forums Linux spécifiques à votre distribution sont une excellente ressource pour obtenir de l'aide. {{page>AC650 11ac Dual-Band Wireless USB Adapter}}"},"score":0.75,"snippet":"Il y a des cartes Wifi qui sont mieux supportées par Linux, souvent dues à la compatibilité de leurs chipsets avec les drivers disponibles dans les distributions Linux. En général, les cartes Wifi n'ont pas de problèmes …","tier":2},{"article":{"uuid":"a150a0d3-caac-4d1f-915d-8d3c35624df1","slug":"postfix","title":"PostFix : serveur de messagerie sous Linux","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-12-29 17:29:08","created_at":"2023-12-29 17:29:08","updated_at":"2023-12-29 17:29:08","plain":"Cet article est destiné aux débutants qui veulent configurer un serveur de messagerie électronique de base. Il est préférable d'avoir une connaissance élémentaire en administration système, ainsi que la capacité d'installer des logiciels et de modifier des fichiers de configuration. L'article a été rédigé en se basant sur Debian 11, mais les instructions devraient également convenir aux autres versions. Veuillez noter que des différences peuvent exister dans les autres versions. Postfix est un logiciel de serveur de messagerie open source largement adopté. En tant que \"MTA\" (Agent de Transfert de Message), il joue un rôle central dans le traitement, la transmission et la distribution des courriels. Doté de fonctionnalités avancées en matière de sécurité, de filtrage et de personnalisation, Postfix est un choix prisé pour la gestion des systèmes de messagerie. \nIntroduction\nL'objectif fondamental de cette procédure est de permettre à n'importe quelle machine ou serveur d'envoyer des courriels vers une adresse spécifique. Pour y parvenir, il est nécessaire de préparer le courrier électronique à l'aide d'un programme externe, puis de le transmettre efficacement au serveur de messagerie de destination en utilisant le protocole SMTP (Simple Mail Transfer Protocol). Le processus de l'envoi de courriel via SMTP s'articule comme suit, prenons un exemple concret avec un courriel destiné à l'adresse alice@example.com : 1. L'utilisateur ou un programme externe crée le courrier électronique, en spécifiant les informations du destinataire (alice@example.com), en rédigeant le contenu du message et en incluant d'autres détails nécessaires. 2. Le courriel est ensuite remis au serveur SMTP local, qui se trouve sur la machine ou le serveur à partir duquel l'envoi est effectué. 3. Le serveur SMTP analyse le domaine du destinataire (dans ce cas, \"example.com\") pour déterminer comment atteindre le serveur de messagerie de destination. 4. Le serveur SMTP établit un contact avec le serveur de messagerie de destination (le serveur SMTP de \"example.com\" dans cet exemple) en utilisant le protocole SMTP. 5. Le serveur de messagerie de destination accepte le courriel, le stocke temporairement, puis le transfère éventuellement dans la boîte aux lettres de l'utilisateur Alice, située sur son propre serveur de messagerie. 6. Si tout se déroule sans problème, le courriel est ainsi livré avec succès à Alice, qui peut alors le consulter dans sa boîte de réception. Ce processus est la façon dont le protocole SMTP assure la transmission de courriels, encheminant ces derniers de l'expéditeur au destinataire, en utilisant les serveurs de messagerie appropriés à travers Internet.\nAxe de travail\nIl existe de nombreuses configurations et combinaisons différentes possibles lors de la mise en place d'un serveur de messagerie électronique, bien trop nombreuses pour être toutes couvertes ici. Par conséquent, cet article effectue certaines choix fondamentaux pour vous, tels que les logiciels que nous allons utiliser (Postfix et Dovecot). D'autres options nécessiteront des modifications de la part de l'utilisateur, comme les adresses réseau et les noms de domaine. Les paramètres plus avancés, comme la gestion de domaines virtuels et des utilisateurs, ne sont pas abordés dans cet article et ne seront pas traités ici. Dans ce contexte, nous utilisons Postfix comme agent de transfert de messagerie (MTA). Dovecot est utilisé pour permettre aux utilisateurs d'accéder à leur courrier électronique via les protocoles IMAP ou POP. Nous partons du principe que le nom de domaine utilisé est example.com, mais cela devrait être adapté par le lecteur. Vous pouvez utiliser un véritable nom de domaine pour un serveur de messagerie pleinement qualifié ou un faux nom de domaine si vous souhaitez uniquement créer un serveur de messagerie interne. Notre exemple suppose que le serveur de messagerie physique (hôte) porte le nom mail.example.com et est situé à l'adresse IP privée 192.168.0.1 (veuillez personnaliser ces informations en fonction de vos besoins). Le serveur de messagerie fournira des comptes de messagerie basés sur les comptes système d'utilisateurs standards, et les utilisateurs accéderont à leur courrier en utilisant leur nom d'utilisateur et leur mot de passe de compte système. Nous illustrons cela avec un utilisateur nommé John Smith, qui dispose d'un compte système avec le nom d'utilisateur john.\nServeurs SMTP\nSous Linux Debian, il existe plusieurs programmes d'envoi de courriels, chacun avec ses propres fonctionnalités et avantages. Voici quelques-uns des programmes les plus couramment utilisés pour envoyer des courriels sous Debian : 1. ssmtp: Simple SMTP est un programme léger qui permet d'envoyer des courriels via SMTP. Il est particulièrement adapté aux tâches d'envoi de courriels automatisées et ne prend pas en charge la réception de courriels. 2. msmtp: MSMTP est un autre client SMTP léger qui facilite l'envoi de courriels depuis la ligne de commande ou depuis des scripts. Il peut être configuré pour transmettre des courriels à travers un serveur SMTP externe. 3. Postfix: Bien que Postfix soit principalement un serveur de messagerie, il peut également être utilisé pour envoyer des courriels depuis une machine Debian. Il offre une grande flexibilité en matière de configuration, mais sa configuration peut être plus complexe que celle des clients SMTP plus simples. 4. sendmail: Sendmail est un programme de messagerie historique sous Unix/Linux, bien qu'il soit maintenant souvent remplacé par des alternatives plus modernes. Cependant, il est toujours disponible sur Debian et peut être utilisé pour envoyer des courriels. 5. Exim: Exim est un autre serveur de messagerie qui peut être configuré pour envoyer des courriels. Il est également capable de gérer la réception de courriels, ce qui en fait une option plus complète. Le choix du programme d'envoi de courriels dépendra de vos besoins spécifiques, de votre niveau de confort avec la configuration et de la complexité de votre infrastructure de messagerie. Pour des tâches simples d'envoi de courriels depuis la ligne de commande ou depuis des scripts, ssmtp ou msmtp sont souvent des choix pratiques. Pour des besoins plus avancés, Postfix ou Exim peuvent être mieux adaptés.\nInstaller Postfix\nPour installer Postfix sur Debian, vous devez utiliser le gestionnaire de paquets APT (Advanced Package Tool). Voici comment vous pouvez procéder : La première commande met à jour la liste des paquets disponibles dans les dépôts Debian, et la deuxième commande \"apt install\" installe Postfix ainsi que ces dépendances. Choisir Entrer la valeur FQDN de votre adresse de serveur si vous devez relancer la configuration de Postfix\n sudo dpkg-reconfigure postfix\n \nPour supprimer Sendmail, vous pouvez utiliser la commande suivante : Cette commande supprime le programme Sendmail de votre système Debian. Après avoir installé Postfix, vous devrez configurer ces logiciels pour les adapter à vos besoins spécifiques.\nConfigurer Postfix\nLes fichiers de configuration de postfix sont stockés dans /etc/postfix. Les deux principaux fichiers de configuration de postfix sont master.cf et main.cf, bien que nous ne traiterons que de main.cf ici. Tout d'abord, nous allons ajouter ou modifier certaines lignes dans le fichier de configuration main.cf. Les lignes suivantes doivent être ajoutées, modifiées ou décommentées :\nTests\nFaire un essai d'envoi de mail\n echo \"Le contenu du mail\" | mail -s \"ceci est le sujet\" mail@domaine.tld Le programme mail est une composante du package mailutils. Donc, si le programme n'est pas installer sur la machine, utilisez \n- Pour modifier un paramètre dans Postfix, il faut éditer le fichier de configuration\n sudo nano /etc/postfix/main.cf\n \nRedémarrer le service\n sudo systemctl restart postfix\n \n Gestion des Alias\nAjouter dans le fichier de configuration de Postfix, virtualaliasmaps = hash:/etc/postfix/virtual\n \nPuis ajouter dans le fichier les alias désirés tel que le modèle suivant : Enfin, exécuter le bloc suivant. Il sera nécessaire de l’exécuter à chaque modifications effectuées du fichier .\n sudo postmap /etc/postfix/virtual\n sudo systemctl restart postfix Mails en attente\nPour connaître les mails en attente\n sudo postqueue -p\n- Pour traiter tous les mails en attente\n sudo postqueue -f\n- Pour supprimer tous les mails en attente\n sudo postsuper -d ALL Reprise de la configuration de Postfix\nLe fichier de configuration de Postfix est . Il est éditable par nano ou vim. On va le reprendre pour configurer Postfix.\n-- myhostname = myserver.example.com Il est important que l'option corresponde au FQDN (fully qualified domain name) du serveur. La valeur à renseigner et celle qui renvoyée par la commande :\n nslookup 91.134.243.56\n|\n \nDans l'exemple précédent, le serveur est noté dans le Cette information est gérée par le serveur DNS Cette option se trouve les paramètres , chez kimsufi.com \n| Cette option, reverse DNS, se trouve dans les options du serveur VPS de vos serveurs dédiés, chez ovh.com\n|\n|\n-- Configurer le nom du serveur SMTP, domaine à afficher dans le courrier sortant myorigin = example.com Configuer le nom du serveur SMTP mydomain = example.com Configure to which SMTP domains to relay messages to, for example: relaydomains = example.com\n-- Configuration minimaliste du SMTP Greeting Banner: smtpdbanner = $myhostname\n-- Limiter les attaques par déni de services : Consulter le fichier log\nLe fichier log standard de postfix est Vous pouvez garder un oeuil sur les logs\n sudo tail -f /var/log/mail.info&\n \n \nEnvoyer un mail\nIl y a deux possibilités :\nenvoie depuis un client : mail\nconnexion en Telnet sur le serveur SMTP L'utilitaire mail fait parti de la suite mailutils\n sudo apt install mailutils\n-- Utilisation de l'utilitaire mail depuis un poste client. Pour envoyer un mail à de la part de \n echo \"This is the message body\" | mail -s \"This is the subject\" mail@example.com -aFrom:sender@example.com\n \nPour envoyer un mail à \n echo \"This is the message body\" | mail -s \"Hello World\" username\n-- Utilisation de telnet pour se connecter sur le serveur SMTP telnet mail.mymailserver.com 25\n \nPuis saisir les commandes SMTP EHLO checkeremail.com MAIL FROM: RCPT TO: DATA\n Subject: Sending an email using telnet\n Hello,\n Here is my body? Do you like it?\n Cédric\n . QUIT Vider tous les mails\nVider tous les mails présents dans la boite d'un utilisateur. On considère que la boite mail (mbox) de l'utilisateur se trouve dans le fichier sudo sh -c \"> /var/mail/www-data\" Gestion des certificats\nPour configurer Postfix et Certbot pour utiliser les certificats SSL/TLS de \"smtp.monserveur.fr\" avec Let's Encrypt, suivez ces étapes générales. Assurez-vous d'avoir les droits nécessaires sur le serveur et que vous êtes à l'aise avec l'édition de fichiers de configuration en ligne de commande. Configurer Postfix pour utiliser SSL/TLS\n1. Accédez à la configuration de Postfix:\nConnectez-vous à votre serveur en tant que sudouser.\nOuvrez le fichier de configuration principal de Postfix avec un éditeur de texte, tel que ou . Le fichier est généralement situé à . 2. Définissez les chemins des certificats:\nLocalisez ou ajoutez les lignes suivantes dans pour spécifier l'emplacement des fichiers de certificat et de clé privée (remplacez les chemins par les vôtres si nécessaire) :\nActivez l'utilisation de TLS en ajoutant ou en s'assurant que la ligne suivante est présente : 3. Redémarrez Postfix:\nSauvegardez vos modifications et fermez le fichier.\nExécutez la commande pour appliquer les modifications. Configurer Dovecot pour SSL/TLS\nSi vous utilisez Dovecot comme serveur IMAP/POP3 : 1. Les fichiers de configuration de Dovecot se trouvent généralement dans . Le fichier principal de configuration est souvent nommé , et il peut inclure d'autres fichiers de configuration situés dans . 2. Dans les fichiers de configuration de Dovecot, vous devrez trouver et modifier les lignes qui définissent le chemin du certificat SSL et de la clé privée. Recherchez quelque chose comme ceci : Pensez à désactiver la configuration présente dans . 3. Redémarrez Dovecot avec . 4. Après le redémarrage, assurez-vous que tout fonctionne comme prévu. Vous pouvez vérifier que Dovecot écoute avec le nouveau certificat en vous connectant avec un client de messagerie ou en utilisant OpenSSL : Configurer Let's Encrypt pour le renouvellement automatique\n1. Certbot gère généralement les renouvellements automatiquement. Cependant, vous pouvez personnaliser ou ajouter des scripts de renouvellement dans le dossier de hooks de renouvellement. 2. Scripts de renewal-hooks:\nPlacez les scripts personnalisés dans . Vous pouvez avoir des scripts , , et pour s'exécuter avant, pendant, et après le renouvellement.\nUn script typique dans pourrait redémarrer Postfix et Dovecot pour appliquer les nouveaux certificats. Voir les pages : \nSi vous avez deux scripts distincts, et et vous souhaitez exécuter les deux après le renouvellement de certificat Let's Encrypt par Certbot, vous pouvez configurer les hooks dans le fichier de configuration de renouvellement de Certbot ou les placer dans les répertoires de hook appropriés. Vous devriez ajouter des lignes pour posthook dans la section . Votre fichier pourrait ressembler à ceci : 3. Tester le renouvellement:\nExécutez pour tester le processus de renouvellement et s'assurer que tout fonctionne comme prévu. Vérification et maintenance\nVérifiez les logs de Postfix et Dovecot pour les erreurs liées aux certificats SSL/TLS.\nAssurez-vous que les certificats se renouvellent correctement en vérifiant les dates d'expiration et en observant le comportement du système lors des renouvellements planifiés. Remarques\nFaites toujours une copie de sauvegarde des fichiers de configuration avant de les modifier.\nLes chemins exacts et les commandes peuvent varier légèrement en fonction de votre distribution Linux et de la version de vos logiciels.\nAssurez-vous que les ports nécessaires sont ouverts sur votre pare-feu pour permettre les connexions TLS/SSL. En suivant ces étapes, vous devriez être capable de configurer Postfix et Dovecot pour utiliser les certificats SSL/TLS avec Let's Encrypt, améliorant ainsi la sécurité de votre serveur de messagerie. Assurez-vous de tester votre configuration pour vérifier que tout fonctionne correctement avant de la mettre en production. Biblio\nhttps:www.tecmint.com/install-postfix-mail-server-with-webmail-in-debian/\nhttps:*wiki.centos.org/HowTos(2f)postfix.html"},"score":0.75,"snippet":"Cet article est destiné aux débutants qui veulent configurer un serveur de messagerie électronique de base. Il est préférable d'avoir une connaissance élémentaire en administration système, ainsi que la capacité d'instal…","tier":2},{"article":{"uuid":"f8423f15-05e8-469e-93e9-e1ca68504e23","slug":"git","title":"git","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-11-30 21:13:02","created_at":"2023-11-30 21:13:02","updated_at":"2023-11-30 21:13:02","plain":"Git est un système de gestion de versions qui permet de suivre les modifications apportées à des fichiers et de collaborer sur des projets informatiques de manière organisée. Il enregistre l'historique de toutes les modifications, ce qui permet de revenir en arrière en cas d'erreur et de travailler en équipe sur un même code source sans conflits majeurs. En résumé, Git est un outil essentiel pour les développeurs et d'autres personnes travaillant sur des projets informatiques pour gérer et suivre les modifications apportées aux fichiers.\nCommandes Git de base\nLorsque vous travaillez uniquement en local avec Git, vous avez généralement besoin d'un ensemble de commandes Git de base pour gérer vos dépôts locaux. Voici quelques-unes des commandes Git les plus couramment utilisées dans ce contexte :\ngit init : Cette commande initialise un nouveau dépôt Git local dans le répertoire courant. Vous l'utiliserez une seule fois au début du projet pour créer un nouveau dépôt.\ngit clone : Si vous avez déjà un dépôt distant et que vous souhaitez créer une copie locale de ce dépôt, vous pouvez utiliser la commande git clone.\ngit status : Cette commande vous permet de vérifier l'état de votre répertoire de travail par rapport au dépôt Git local. Elle vous montre les fichiers modifiés, non suivis, en attente de commit, etc.\ngit add : Utilisez cette commande pour mettre des fichiers sous suivi Git (staging area) en vue de les inclure dans le prochain commit.\ngit commit : Crée un instantané (commit) des modifications enregistrées dans la staging area. \ngit log : Cette commande affiche l'historique des commits du dépôt local, y compris les messages de commit et les informations sur les auteurs et les dates.\ngit branch : Permet de lister les branches disponibles dans votre dépôt local, et de voir sur quelle branche vous vous trouvez actuellement.\ngit checkout : Vous permet de passer d'une branche à une autre. \ngit merge : Utilisé pour fusionner une branche avec une autre. \ngit diff : Vous montre les différences entre deux commits, deux branches ou deux fichiers. \nCommandes Git avec un dépôt distant\nLorsque vous travaillez avec un dépôt distant en plus de votre dépôt local, vous devez utiliser quelques commandes supplémentaires pour synchroniser votre travail avec le dépôt distant. Voici les commandes Git les plus couramment utilisées dans ce contexte :\ngit remote : Cette commande vous permet de voir la liste des dépôts distants associés à votre dépôt local.\ngit fetch : Utilisez cette commande pour récupérer les dernières modifications du dépôt distant sans les fusionner dans votre branche actuelle. Elle met à jour vos références locales avec les modifications distantes.\ngit pull : Cette commande récupère les dernières modifications du dépôt distant et les fusionne automatiquement dans votre branche locale. C'est équivalent à exécuter git fetch suivi de git merge.\ngit push : Utilisez cette commande pour pousser vos commits locaux vers le dépôt distant. Vous devez spécifier la branche locale que vous souhaitez pousser et la branche distante vers laquelle vous voulez la pousser.\ngit clone (déjà mentionné) : Utilisez cette commande pour cloner un dépôt distant et créer une copie locale de celui-ci.\ngit branch (déjà mentionné) : Vous permet de voir les branches locales et distantes. Utilisez git branch -r pour voir les branches distantes.\ngit checkout (déjà mentionné) : Vous permet de basculer entre les branches locales et de créer de nouvelles branches.\ngit merge (déjà mentionné) : Utilisé pour fusionner les branches locales. Vous pouvez également utiliser git merge pour fusionner des branches distantes dans votre branche actuelle après avoir récupéré les modifications avec git fetch.\ngit remote add : Si vous souhaitez ajouter un nouveau dépôt distant à votre dépôt local, vous pouvez utiliser cette commande pour l'associer.\ngit remote remove : Cette commande vous permet de supprimer un dépôt distant associé à votre dépôt local.\ninit\nQue vous travailliez en collaboration avec d'autres développeurs ou que vous travailliez uniquement sur votre propre projet, vous effectuerez systématiquement une commande pour initialiser la construction de votre dépôt Git. Pour rappel, Git sait aussi bien travailler en collaboration à distance qu'en local, car il permet de gérer efficacement les versions de votre code, de suivre l'historique des modifications et de fusionner les contributions de différents collaborateurs, que ce soit sur un dépôt distant ou sur votre propre machine.\ngitignore\nLe fichier est utilisé pour spécifier des règles sur les fichiers et les répertoires que Git doit ignorer lorsqu'il suit les modifications. Les règles définies dans ce fichier indiquent à Git de ne pas inclure certains fichiers ou dossiers dans les commits, ce qui peut être utile pour exclure des fichiers de configuration locaux, des fichiers de génération automatique, des fichiers temporaires, etc. Placer le fichier à la racine du dépôt est courant car cela permet de spécifier des règles d'ignorance qui s'appliquent à l'ensemble du projet. Cependant, il est également possible d'avoir des fichiers dans des sous-répertoires si vous avez besoin de règles d'ignorance spécifiques à ces sous-répertoires.\nclone\nCe terme désigne l'action de copier ou télécharger le contenu d'un dépôt dans un dossier de travail. L'adresse d'un dépot Git peut-être par exemple . Dans le contexte de la gestion de versions et du contrôle de code source, un dépôt (ou repository en anglais) est un endroit où sont stockées toutes les informations liées à un projet, y compris les fichiers source, l'historique des versions, les branches de développement, etc. Donc, lorsque vous souhaitez cloner ce lien avec la commande , vous obtenez une copie locale de ce dépôt sur votre machine, ce qui vous permet de travailler sur le projet et de suivre les modifications localement. Par exemple : Ces commandes créent un dossier appelé \"scripts-bash\" dans le répertoire \"/projets\" et téléchargent les fichiers et dossiers du dépôt, en préservant la structure de l'arborescence telle qu'elle est définie dans le dépôt. Le dossier \"/projets/scripts-bash\" devient un dépôt Git local.\nremote\nPour collaborer avec d'autres sur Git, vous devez initialement créer un dépôt sur la plateforme de votre choix, que ce soit GitHub, GitLab, ou un dépôt géré par un service tel que Gitea. Une fois que votre dépôt distant est prêt, vous devez configurer votre dépôt local pour qu'il puisse interagir avec le dépôt distant en utilisant la commande . Cette commande permet d'établir le lien entre votre dépôt local et le dépôt distant en spécifiant son emplacement et un nom symbolique pour référencer le dépôt distant. Voici quelques exemples d'utilisation de la commande pour configurer des dépôts distants dans Git : 1. Ajouter un dépôt distant nommé \"origin\" avec une URL : 2. Voir la liste des dépôts distants configurés dans votre dépôt local : 3. Modifier l'URL d'un dépôt distant existant (par exemple, changer l'URL du dépôt \"origin\") : 4. Supprimer un dépôt distant spécifique (par exemple, supprimer le dépôt \"origin\") : 5. Renommer un dépôt distant (par exemple, renommer \"origin\" en \"new-origin\") : 6. Voir les informations détaillées sur un dépôt distant spécifique (par exemple, \"origin\") :\norigin\nDans Git, \"origin\" est généralement un nom symbolique utilisé pour faire référence par défaut au dépôt distant à partir duquel vous avez cloné votre dépôt local. Il est important de noter que \"origin\" n'est pas un terme réservé ou prédéfini par Git, mais c'est une convention couramment utilisée. Plus précisément, \"origin\" est un alias que Git utilise pour simplifier les opérations de communication avec un dépôt distant. Lorsque vous clonez un dépôt distant avec la commande , Git configure automatiquement \"origin\" pour pointer vers l'URL du dépôt distant que vous avez cloné. Cela vous permet d'accéder facilement au dépôt distant sans avoir à spécifier son URL à chaque fois que vous effectuez des opérations telles que ou . Par exemple, après avoir cloné un dépôt depuis GitHub, votre dépôt local aura par défaut \"origin\" configuré pour pointer vers l'URL du dépôt GitHub. Vous pouvez ensuite utiliser des commandes comme pour tirer les mises à jour du dépôt distant ou pour pousser vos modifications vers le dépôt distant, en utilisant simplement l'alias \"origin\". Cependant, vous pouvez également configurer d'autres dépôts distants avec des noms différents si vous travaillez avec plusieurs dépôts distants dans votre projet. \"origin\" est simplement le nom par défaut pour le dépôt distant d'origine à partir duquel vous avez cloné.\nadd, commit, push\nLes commandes add, commit et push sont des commandes essentielles dans Git qui vous permettent de gérer et de versionner vos fichiers et modifications. git add : Cette commande est utilisée pour mettre des fichiers sous suivi Git (staging area). En d'autres termes, elle permet de préparer les modifications que vous souhaitez inclure dans votre prochain commit. Vous pouvez spécifier les fichiers individuellement ou utiliser des motifs pour ajouter plusieurs fichiers à la fois. Par exemple : La première commande ajoute un fichier spécifique, la deuxième ajoute tous les fichiers dans un dossier, et la troisième ajoute tous les fichiers modifiés ou nouveaux dans le répertoire de travail. git commit : Une fois que vous avez ajouté les fichiers à la staging area avec git add, vous pouvez utiliser git commit pour créer un instantané (commit) des modifications. Chaque commit est accompagné d'un message descriptif qui explique les changements apportés. Par exemple : Cette commande crée un commit contenant les fichiers ajoutés à la staging area avec un message qui décrit la modification effectuée. git push : Cette commande est utilisée pour pousser vos commits vers un dépôt distant, comme celui sur GitHub, GitLab ou un autre serveur Git. Lorsque vous effectuez des commits localement, ils ne sont pas automatiquement disponibles pour d'autres collaborateurs ou pour sauvegarde sur le serveur distant. git push permet de transférer vos commits locaux vers le dépôt distant. Par exemple : Cette commande envoie les commits de la branche locale vers la branche correspondante sur le dépôt distant.\n- Si vous souhaitez modifier l'un des scripts ou fichier dans le dépôt cloné (par exemple, le \"scripts-bash\" que vous avez cloné), suivez ces étapes : 1. Naviguez vers le répertoire où vous avez cloné le dépôt. Vous avez mentionné que vous l'avez cloné dans \"/projets/scripts-bash\". Utilisez la commande pour vous déplacer vers ce répertoire : 2. Une fois dans le répertoire du projet, vous pouvez éditer le script que vous souhaitez modifier à l'aide de l'éditeur de texte de votre choix. Par exemple, si vous utilisez l'éditeur de texte \"nano\", vous pouvez l'ouvrir en spécifiant le nom du fichier à éditer : 3. Effectuez les modifications nécessaires dans le script à l'aide de l'éditeur de texte. 4. Enregistrez les modifications et quitter l'éditeur de texte. 5. Une fois les modifications enregistrées, vous pouvez les valider en utilisant Git. Voici comment cela peut être fait :\nSi vous avez modifié un fichier existant, utilisez la commande pour ajouter les modifications au suivi Git :\nEnsuite, utilisez la commande pour enregistrer les modifications avec un message descriptif :\nEnfin, utilisez pour pousser les modifications vers le dépôt distant (si vous avez les autorisations nécessaires) : Assurez-vous de remplacer \"nomdelabranche\" par le nom de la branche sur laquelle vous souhaitez pousser les modifications.\n- En résumé, git add prépare les modifications, git commit crée un instantané des modifications avec un message, et git push envoie ces commits vers un dépôt distant. Ensemble, ces commandes permettent de gérer efficacement les versions de votre code source. Elles permettront de modifier un script dans votre dépôt Git local et de mettre à jour le dépôt distant avec vos modifications.\nEnregistrer ces identifiants durant un laps de temps en mémoire\nComme vous l'aurez remarqué, les identifiants sont systématiquement requis lorsque vous effectuez des modifications sur le serveur distant avec la commande . Vous avez la possibilité de mémoriser temporairement les identifiants de connexion Git localement en utilisant la commande . Voici comment procéder : 1. Ouvrez votre Terminal 2. Exécutez les commandes suivantes pour définir votre nom d'utilisateur et votre mot de passe pour le dépôt distant : Assurez-vous de remplacer les valeurs de , , et par les valeurs appropriées pour votre dépôt distant.\n- Une fois que vous avez exécuté ces commandes, Git stockera vos informations d'identification en mémoire de manière sécurisée localement pendant un certain temps (dans cet exemple, pendant 3600 secondes, soit 1 heure). Vous n'aurez pas besoin de saisir vos informations d'identification à chaque opération Git pendant cette période. Source : https:git-scm.com/docs/git-credential-cache/fr \nEnregistrer ces identifiants dans les gestionnaires de secrets\nGNOME Keyring Source : https:pkgs.org/search/?q=git-credential-libsecret \nEnregistrer ces identifiants dans keepassXC\nSource : https:github.com/Frederick888/git-credential-keepassxc //"},"score":0.75,"snippet":"Git est un système de gestion de versions qui permet de suivre les modifications apportées à des fichiers et de collaborer sur des projets informatiques de manière organisée. Il enregistre l'historique de toutes les modi…","tier":2},{"article":{"uuid":"f1004702-b941-46e8-8eff-7e42d2ccc91f","slug":"getopts","title":"getopts","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-11-27 18:35:31","created_at":"2023-11-27 18:35:31","updated_at":"2023-11-27 18:35:31","plain":"La commande est une commande intégrée (built-in) dans les scripts shell (en particulier dans les shells comme bash) qui permet de traiter facilement les options et les arguments passés en ligne de commande lors de l'exécution d'un script. Elle facilite la gestion des arguments de ligne de commande en permettant aux scripts d'analyser les options spécifiées par l'utilisateur. La syntaxe générale de est la suivante :\nest une chaîne qui spécifie les options que vous souhaitez gérer dans votre script. Chaque lettre dans cette chaîne représente une option, et si une lettre est suivie d'un deux-points (), cela signifie que l'option attend un argument. Par exemple, signifie que le script gère les options , , et , où attend un argument.\nest la variable que vous déclarez pour stocker la lettre de l'option actuelle pendant le traitement. Voici un exemple simple d'utilisation de dans un script bash : Dans cet exemple, le script peut être appelé avec des options comme , , ou simplement . permet de traiter chaque option de manière séquentielle, en récupérant la lettre de l'option dans la variable et en utilisant un bloc pour gérer chaque option spécifiée par l'utilisateur. Si l'utilisateur spécifie une option invalide, le script affiche un message d'erreur et se termine."},"score":0.75,"snippet":"La commande est une commande intégrée (built-in) dans les scripts shell (en particulier dans les shells comme bash) qui permet de traiter facilement les options et les arguments passés en ligne de commande lors de l'exé…","tier":2},{"article":{"uuid":"8bc6aa8c-ef15-40ea-a6c4-ca3e7c6c4657","slug":"groups","title":"groups","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-11-27 18:33:19","created_at":"2023-11-27 18:33:19","updated_at":"2023-11-27 18:33:19","plain":"La commande est utilisée pour afficher les groupes auxquels un utilisateur appartient sur un système Unix ou Linux. Lorsqu'elle est exécutée sans argument, la commande affiche les groupes de l'utilisateur courant (l'utilisateur qui exécute la commande). Voici un exemple d'utilisation de la commande : Le résultat sera une liste des groupes auxquels appartient l'utilisateur actuel, séparés par des espaces. Par exemple, si l'utilisateur courant est et qu'elle appartient aux groupes et , la commande affichera quelque chose comme ceci : La commande est utile pour vérifier rapidement les groupes auxquels un utilisateur est associé, ce qui peut être important pour comprendre ses autorisations et ses privilèges sur le système. Vous pouvez également spécifier un nom d'utilisateur en argument pour afficher les groupes auxquels un utilisateur spécifique appartient, par exemple : Cela affichera les groupes auxquels l'utilisateur appartient. Scripts\nLa commande peut être utilisée dans des scripts shell pour récupérer la liste des groupes auxquels un utilisateur appartient et utiliser ces informations dans des opérations ou des prises de décision. Voici un exemple simple de la façon dont vous pourriez utiliser dans un script : Supposons que vous ayez un script shell (par exemple, un script bash) et que vous souhaitiez effectuer une action différente en fonction des groupes auxquels l'utilisateur appartient. Voici un exemple de script qui utilise pour cela : Dans cet exemple, le script récupère la liste des groupes de l'utilisateur courant à l'aide de la commande et stocke cette liste dans la variable . Ensuite, il vérifie si l'utilisateur appartient au groupe \"admin\" en utilisant une condition . Vous pouvez personnaliser le script en fonction des groupes que vous souhaitez vérifier. L'utilisation de dans des scripts peut être utile pour personnaliser le comportement du script en fonction des autorisations ou des groupes d'utilisateurs. Assurez-vous que le script est exécuté par un utilisateur qui a la permission d'exécuter la commande , et n'oubliez pas de gérer les erreurs potentielles, notamment si l'utilisateur n'appartient à aucun groupe."},"score":0.75,"snippet":"La commande est utilisée pour afficher les groupes auxquels un utilisateur appartient sur un système Unix ou Linux. Lorsqu'elle est exécutée sans argument, la commande affiche les groupes de l'utilisateur courant (l'ut…","tier":2},{"article":{"uuid":"c515afd9-ca19-46c8-8aba-a8d5241564c3","slug":"la-ligne-de-commande","title":"- La ligne de commande","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-08-15 06:49:12","created_at":"2023-08-15 06:49:12","updated_at":"2023-08-15 06:49:12","plain":"--\nUne ligne de commande, également appelée interface en ligne de commande (CLI), est un moyen d'interagir avec un système d'exploitation en saisissant des commandes à l'aide d'un clavier au lieu d'utiliser une interface graphique. Les commandes sont généralement entrées dans un terminal ou une fenêtre de commande et exécutées par le système d'exploitation. Les commandes peuvent effectuer des tâches telles que la gestion de fichiers, la modification de paramètres de configuration, la gestion des processus et la surveillance du système. Les lignes de commandes sont utilisés à l'aide d'un interpréteur de commande (par exemple BASH). Une fois connecté à un terminal texte, un programme nommé shell est lancé automatiquement. Il permet de lancer des commandes. Syntaxe des commandes\nLa ligne de commande regroupe une ou plusieurs instructions qui sont saisies et se termine par un retour à la ligne. La commande est composée d'un nom qui décrit une action ou un programme, éventuellement suivie d'arguments. Par exemple la ligne de commande comporte la commande sans argument. La ligne de commande comporte la commande avec 2 arguments : et . La ligne de commande comporte la commande avec 1 argument, . Les arguments d'une commande peuvent être des options ou des arguments, selon le contexte dans lequel ils sont utilisés. Les options sont des arguments supplémentaires qui peuvent être utilisés pour personnaliser le comportement de la commande. Elles peuvent être courtes (précédées d'un tiret simple (-)) ou longues (précédées d'un double tiret (--)). Les arguments sont des informations nécessaires à la commande pour accomplir son travail. Ils peuvent inclure des noms de fichiers, des répertoires, des noms d'utilisateurs, etc. Par exemple, dans la commande , est une option qui demande à la commande d'afficher les fichiers et répertoires sous forme de liste détaillée, tandis que \"/home/user\" est un argument qui spécifie le répertoire à afficher. Il est important de comprendre les différences entre les options et les arguments pour utiliser correctement les commandes en ligne de commande sous Linux. Options mono-caractère\nLes options mono-caractère sont des options courtes qui peuvent être utilisées pour personnaliser le comportement des commandes en ligne de commande sous Linux. Elles sont généralement précédées d'un tiret simple (-) et peuvent être combinées pour obtenir des effets plus complexes. Par exemple, la commande peut être utilisée avec l'option mono-caractère pour afficher les fichiers et répertoires sous forme de liste détaillée. La combinaison des options et peut être utilisée pour afficher les tailles de fichier de manière lisible pour les humains. ls -l -h\n ls -h -l\n ls -lh\n ls -hl\n \nCertaines options en ligne de commande peuvent être précédées d'un signe plus (+) au lieu d'un tiret simple (-). Ce type d'options sont généralement utilisées pour ajouter ou activer des fonctionnalités supplémentaires dans les programmes. Par exemple, la commande peut être utilisée avec l'option \"+l\" pour afficher les fichiers et répertoires sous forme de liste détaillée, similaire à l'utilisation de l'option \"-l\". Il est important de noter que l'utilisation de signes plus (+) pour les options est assez rare et n'est généralement pas standard pour la plupart des commandes en ligne de commande sous Linux. La plupart des options sont précédées d'un tiret simple (-). Il est donc toujours préférable de consulter la documentation pour comprendre les options disponibles et comment les utiliser correctement. Certaines options en ligne de commande peuvent prendre une chaîne de caractères en argument. Ces options sont généralement utilisées pour fournir des informations supplémentaires au programme sur la façon de se comporter ou sur les données à utiliser. Par exemple, la commande peut être utilisée avec l'option pour rechercher une expression régulière spécifiée dans un fichier ou sur l'entrée standard. L'expression régulière est spécifiée comme une chaîne de caractères après l'option . Supposons que vous avez un fichier nommé qui contient du texte.\nPour rechercher la chaîne de caractères \"sample\" dans ce fichier, vous pouvez utiliser la commande grep avec l'option : grep -e \"sample\" file.txt Vous pouvez écrire la commande de cette façon : grep -esample file.txt\n \nCela fonctionnera de la même manière que la commande précédente, avec l'option \"-e\" suivie de la chaîne de caractères \"sample\". La commande affichera la ligne du fichier \"file.txt\" qui contient la chaîne de caractères \"sample\". Il est important de noter que le format des options qui prennent une chaîne de caractères en argument peut varier pour chaque commande. Il est donc toujours préférable de consulter la documentation pour comprendre les options disponibles et comment les utiliser correctement. Les options mono-caractère peuvent varier pour chaque commande, et il est souvent utile de consulter la documentation pour comprendre les options disponibles et comment les utiliser correctement. Les options longues\nLes options longues sont généralement précédées d'un double tiret (--) et peuvent inclure des mots entiers pour décrire plus clairement leur fonctionnement. Par exemple, la commande peut être utilisée avec l'option longue pour afficher la taille des fichiers sous forme conviviale en utilisant des unités de taille, similaire à l'utilisation de l'option . La séparation des options et des arguments\nLa séparation des options et des arguments peut être faite en utilisant un double tiret (--) pour signaler la fin des options et le début des arguments. Tout ce qui suit le double tiret est considéré comme un argument, même s'il commence par un tiret simple (-). Par exemple, considérons la commande \"cp\", qui permet de copier des fichiers d'un emplacement à un autre. Si vous souhaitez copier un fichier nommé \"-f\" à un emplacement nommé \"destination\", vous pouvez utiliser la commande suivante: cp -- -f destination Dans ce cas, le double tiret (--) signale la fin des options et le début des arguments. Le premier argument, \"-f\", est considéré comme un nom de fichier, même s'il commence par un tiret simple (-). Le second argument, \"destination\", est considéré comme l'emplacement de destination pour la copie de fichier. L'utilisation de ce double tiret peut être utile lorsqu'il est nécessaire de traiter des arguments qui commencent par un tiret simple (-), qui pourraient autrement être interprétés comme des options.\nAspect de la ligne de commandes\nSous Linux, l'invite de commande peut prendre différentes formes en fonction de la configuration. Par exemple, elle peut être configurée pour afficher le nom d'utilisateur, le nom d'hôte et le répertoire courant, ou seulement le nom d'utilisateur et le répertoire courant. La couleur et les caractères utilisés pour l'affichage peuvent également être personnalisés. Il est également possible de changer le comportement de l'invite de commande en utilisant des alias, des variables d'environnement et d'autres outils de configuration. Cela peut aider à améliorer l'efficacité et la productivité en ligne de commande. L'invite de commande\nL'invite de commande est l'endroit où les utilisateurs peuvent saisir des commandes pour interagir avec un système d'exploitation. Il s'agit généralement d'une fenêtre ou d'un terminal (appelé SHELL) qui affiche un curseur clignotant, où l'utilisateur peut saisir des commandes et les exécuter en appuyant sur la touche \"Entrée\". Les commandes saisies dans l'invite de commande sont interprétées par le système d'exploitation et exécutées en conséquence. Le dernier caractère de l'invite de commande peut être un dollar \"$\" ou un dièse \"#\". Cela dépend du niveau de privilèges de l'utilisateur actuel. Un dollar indique que l'utilisateur actuel est un utilisateur normal, sans privilèges d'administration. Un dièse indique que l'utilisateur actuel est un utilisateur avec des privilèges d'administration, également appelé \"superutilisateur\" ou \"root\". Cela aide à identifier rapidement le niveau de privilèges de l'utilisateur actuel et peut être utile pour éviter de saisir accidentellement des commandes dangereuses avec des privilèges élevés. Par exemple :\n> correspond à l'utilisateur connecté.\n> correspond au nom de l’hôte, c'est-à-dire au nom de l'ordinateur.\n> correspond au répertoire courant. Lorsqu'il est représenté par le symbole **, cela indique qu'il s'agit du dossier personnel de l'utilisateur, appelé en anglais home.\n> indique que l'utilisateur est de type normal. Avec le caractère #, il indiquera qu'il s'agit d'un super-utilisateur, identifié root. Applications avec une interface graphique\nIl est possible d'exécuter des applications avec une interface graphique depuis un shell sous Linux. Par exemple, pour exécuter une application telle que \"gedit\" avec une interface graphique depuis un shell, vous pouvez utiliser la commande suivante : gedit Cette commande ouvrira l'application fenêtrée gedit**. Cette méthode n'est pas toujours la plus pratique ou la plus efficace pour exécuter des applications avec une interface graphique depuis un shell. Dans de nombreux cas, il est plus facile de simplement cliquer sur l'icône de l'application dans le menu ou le gestionnaire de fichiers. Cependant, cette méthode peut être utile pour exécuter des applications depuis un script ou pour effectuer des tâches de ligne de commande. Les raccourcis clavier en mode texte\nIl existe de nombreux raccourcis clavier qui peuvent être utilisés en mode texte sous Linux pour effectuer des tâches rapidement et efficacement. Voici quelques-uns des raccourcis clavier les plus couramment utilisés :\nTab : Complète automatiquement un nom de fichier ou de répertoire.\nUp : Affiche la dernière commande entrée.\nDown : Affiche la commande précédente entrée.\nCtrl + c : Interrompt une commande en cours d'exécution.\nCtrl + z : Suspend une commande en cours d'exécution et la place en arrière-plan.\nCtrl + d : Termine une session en ligne de commande.\nCtrl + l : Efface l'écran.\nCtrl + r : Recherche dans l'historique des commandes.\nCtrl + Shift + c : Copie dans le presse papier la sélection.\nCtrl + Shift + v : Colle le contenu du presse papier à l'endroit du curseur. Équivalent : Shift + Inser\nCtrl + a : Déplace le curseur au début de la ligne actuelle.\nCtrl + E : Déplace le curseur à la fin de la ligne actuelle.\nCtrl + left : Déplace le curseur d'un mot à gauche.\nCtrl + right : Déplace le curseur d'un mot à droite.\nAlt + left : Déplace le curseur d'un mot à gauche en conservant les mots en entier.\nAlt + right : Déplace le curseur d'un mot à droite en conservant les mots en entier.\nCtrl + U : Efface tout ce qui se trouve à gauche du curseur.\nCtrl + K : Efface tout ce qui se trouve à droite du curseur.\nCtrl + W : Efface le dernier mot à gauche du curseur.\nCtrl + Y : Colle le dernier élément coupé ou copié. Ces raccourcis peuvent varier en fonction de la distribution Linux utilisée et du shell utilisé."},"score":0.75,"snippet":"--\nUne ligne de commande, également appelée interface en ligne de commande (CLI), est un moyen d'interagir avec un système d'exploitation en saisissant des commandes à l'aide d'un clavier au lieu d'utiliser une interface…","tier":2},{"article":{"uuid":"91efb488-90c1-49ea-8664-ff6f7a3ffeea","slug":"ssh","title":"ssh","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-05-01 06:23:56","created_at":"2023-05-01 06:23:56","updated_at":"2023-05-01 06:23:56","plain":"est un programme pour se connecter à une machine distante et pour effectuer des commandes sur cette machine. La connexion et les échanges sont sécurisés. L'identité utilisé sur le poste distant peut être différente de l'identité du poste local utilisé. La connexion nécessite d'un sur la machine distante.\nConnexions sécurisées et simplifiées grâce à l'authentification par clé publique et privée : principe\nPour simplifier et sécuriser la connexion à une machine distante, il est possible d'utiliser une méthode basée sur l'authentification par clé publique et privée. Cette approche élimine la nécessité de saisir un login et un mot de passe à chaque connexion. Au lieu de cela, la connexion SSH vérifiera votre clé privée avec la clé publique enregistrée sur le serveur distant. Cette méthode présente plusieurs avantages. Elle élimine la complexité liée à la gestion des mots de passe et permet un gain de temps considérable au quotidien. De plus, elle offre un niveau de sécurité supérieur, car les clés utilisées sont beaucoup plus robustes que les mots de passe traditionnels. Si plusieurs utilisateurs doivent accéder au serveur distant, SSH permet de gérer plusieurs paires de clés, permettant ainsi à chaque utilisateur de se connecter avec sa propre clé. Si vous avez la responsabilité de plusieurs serveurs, vous pouvez utiliser la même clé publique sur tous les serveurs. Voici un guide détaillé pour vous aider à créer un jeu de clés sur votre poste de travail. Nous allons générer deux clés : une clé privée et une clé publique. Seule la clé publique devra être déployée sur les différents serveurs, tandis que la clé privée doit être conservée précieusement sur votre ordinateur.\nCréation d'un jeu de clés ecdsa pour une connexion SSH sécurisée\nL'algorithme de signature numérique ecdsa est un nouveau standard utilisant les courbes elliptiques, réputé pour sa sécurité et sa performance. La taille maximale des clés supportées est de 521 bits, et la plupart des clients SSH le prennent en charge. Si vous préférez utiliser l'algorithme RSA, vous pouvez simplement remplacer \"ecdsa\" par \"rsa\" dans les étapes suivantes. Étape 1: Génération de la clé SSH Pour créer une clé SSH de type \"ecdsa\", vous pouvez utiliser la commande suivante avec ssh-keygen. L'option -t spécifie le type de clé, et l'option -b définit la longueur de la clé.\n- Spécification de l'emplacement du stockage de la clé (optionnel) Si vous souhaitez spécifier un emplacement particulier pour stocker la clé, vous pouvez utiliser l'option -f suivi du chemin d'accès souhaité. Par exemple :\n- Ajout d'un commentaire à la clé (optionnel) Si vous souhaitez ajouter un commentaire à la clé pour une meilleure identification, vous pouvez utiliser l'option -C suivi du commentaire souhaité. Par exemple : Étape 2: Sécurisation de la clé privée Il est crucial de sécuriser la clé privée et de limiter l'accès aux personnes autorisées à l'utiliser. Lors de la création de la clé, le programme ssh-keygen vous demandera de définir une passphrase (mot de passe) pour la clé privée. Assurez-vous d'utiliser une passphrase sécurisée et de la mémoriser. Les caractères que vous entrez n'apparaîtront pas à l'écran pour des raisons de sécurité. En suivant ces étapes, vous aurez créé un jeu de clés ecdsa pour une connexion SSH sécurisée. Veillez à bien protéger la clé privée et à utiliser une passphrase forte pour garantir la sécurité de votre connexion.\nContrôle et gestion des clés dans SSH Pour contrôler vos clés SSH et effectuer des opérations de gestion, vous pouvez suivre les étapes suivantes : Étape 1: Lister les clés présentes dans votre compte Utilisez la commande suivante dans votre terminal pour lister les clés présentes dans votre répertoire /.ssh/ : Cette commande affichera la liste des clés présentes, le cas échéant. Étape 2: Afficher le contenu d'une clé (à utiliser avec précaution) Si vous souhaitez afficher le contenu d'une clé spécifique, vous pouvez utiliser la commande suivante : Remplacez \"maCle\" par le nom de votre clé. Cependant, il est important de noter que l'affichage du contenu d'une clé publique ou privée à l'aide de la commande \"cat\" est une pratique peu recommandée en raison de la sensibilité des informations contenues dans la clé. Veillez à utiliser cette commande avec précaution et évitez de divulguer le contenu de vos clés. Il est essentiel de prendre des mesures pour sécuriser vos clés SSH, telles que la protection de la clé privée avec une passphrase et le contrôle strict des autorisations d'accès aux fichiers de clés. En suivant ces étapes, vous pouvez contrôler et gérer vos clés SSH de manière sécurisée. Veillez à respecter les bonnes pratiques en matière de gestion des clés et à prendre les mesures appropriées pour protéger vos informations sensibles.\nCopier et utiliser une clé publique avec SSH\nGuide étape par étape pour copier et utiliser une clé publique avec SSH sous Linx.\n- Pour utiliser la clé, vous devez procéder à la copie de votre clé publique vers le poste distant. La clé publique est généralement stockée dans un fichier nommé \"idrsa.pub\" situé dans le répertoire \".ssh\" de votre dossier utilisateur. L'étape suivante consiste à ajouter cette clé publique au fichier \"authorizedkeys\" du dossier \".ssh\" sur l'ordinateur distant. Voici un exemple plus détaillé du processus : 1. Tout d'abord, identifiez l'emplacement de votre clé publique. Par défaut, elle se trouve dans le fichier \"/.ssh/idrsa.pub\". 2. Ensuite, ouvrez une session sur le serveur distant en utilisant la commande SSH : Remplacez \"utilisateur\" par votre nom d'utilisateur et \"srvprod.aceinternet.fr\" par l'adresse du serveur distant. 3. Une fois connecté au serveur distant, créez le dossier \".ssh\" dans votre répertoire utilisateur s'il n'existe pas déjà : 4. Utilisez la commande \"ssh-copy-id\" pour copier votre clé publique sur le serveur distant et l'ajouter au fichier \"authorizedkeys\" : Cette commande copie le contenu de votre clé publique dans le fichier \"authorizedkeys\" sur le serveur distant, ce qui vous permettra de vous connecter sans avoir à saisir de mot de passe. Cette commande est a utiliser sur votre poste local. 5. Après avoir exécuté la commande, vous serez invité à saisir votre mot de passe pour le serveur distant une dernière fois. Entrez-le et la copie de votre clé publique sera effectuée. Une fois que vous avez suivi ces étapes, vous devriez être en mesure de vous connecter au serveur distant en utilisant votre clé privée, sans avoir à saisir votre mot de passe à chaque fois. Veuillez noter que les noms de fichiers et les chemins d'accès peuvent varier en fonction de votre configuration spécifique, mais les étapes générales restent les mêmes.\nGestion des clés SSH avec un fichier de configuration\nPour faciliter la gestion des connexions SSH, vous pouvez créer un fichier de configuration qui regroupe toutes les informations nécessaires. Voici un exemple de configuration : Ce fichier de configuration permet de spécifier les paramètres de connexion pour l'hôte distant \"srvprod.aceinternet.fr\". Les lignes suivantes indiquent respectivement le nom d'hôte, le port, le nom d'utilisateur et le chemin vers la clé privée à utiliser pour cette connexion. Il est important de protéger le fichier de configuration pour garantir la sécurité de vos informations sensibles. Vous pouvez définir les permissions appropriées en utilisant les commandes suivantes : La première commande définit les permissions du fichier de configuration de manière à ce qu'il soit accessible en lecture et écriture uniquement par le propriétaire (vous), et aucun accès en lecture pour les autres utilisateurs. La deuxième commande garantit que le fichier appartient à l'utilisateur courant. En veillant à protéger votre fichier de configuration, vous pouvez centraliser et gérer plus facilement vos connexions SSH en utilisant les paramètres spécifiés dans ce fichier. Cela simplifie également la maintenance et la modification des connexions SSH.\nConseils en cas de panne\nQue faire en cas de changement de la clé publique de l'hôte distant\nUne clé publique de l'hôte distant est un élément essentiel dans le système d'authentification et de sécurité utilisé par le protocole SSH (Secure Shell) lors des connexions à distance. Lorsque vous vous connectez à un hôte distant via SSH, l'hôte présente sa clé publique au client pour vérifier son identité. La clé publique de l'hôte distant est générée lors de la première connexion SSH à cet hôte et est ensuite stockée dans le fichier knownhosts du client. Elle est associée à une signature numérique unique qui permet d'authentifier l'hôte distant de manière sécurisée. Cette clé publique est utilisée pour chiffrer les données envoyées au serveur, assurant ainsi la confidentialité des communications. Lorsque vous vous reconnectez à l'hôte distant ultérieurement, le client SSH vérifie si la clé publique présentée par l'hôte correspond à celle enregistrée dans le fichier knownhosts. Si les clés correspondent, la connexion est établie en toute sécurité. Cependant, si la clé publique a changé depuis la dernière connexion, le client SSH émet un avertissement indiquant qu'une attaque potentielle de type \"man-in-the-middle\" est possible, et la connexion est bloquée par mesure de sécurité. La clé publique de l'hôte distant joue donc un rôle crucial dans l'établissement de connexions sécurisées via SSH. Elle permet d'authentifier l'hôte distant et de détecter tout changement potentiel dans l'identité de l'hôte. La gestion appropriée des clés publiques et la vérification de leur validité contribuent à assurer la sécurité des connexions SSH.\n- Si vous rencontrez une erreur indiquant que la clé publique de l'hôte distant a changé lors d'une tentative de connexion SSH, voici les étapes à suivre pour résoudre ce problème : 1. Tout d'abord, lorsque vous essayez de vous connecter à l'hôte distant avec la commande , vous obtenez un message d'erreur indiquant que la clé a changé et qu'une attaque de type \"man-in-the-middle\" est possible. 2. Cela signifie que la clé ECDSA (ECDSA key) utilisée pour sécuriser la connexion entre votre client et l'hôte distant a été modifiée depuis votre dernière connexion. Cette clé est stockée localement sur votre client, dans le fichier knownhosts, qui se trouve généralement dans le répertoire caché .ssh de votre utilisateur (par exemple, /home/cedric/.ssh/knownhosts). 3. Pour résoudre ce problème, vous devez réinitialiser l'entrée de l'hôte distant dans le fichier knownhosts. Vous pouvez le faire en utilisant la commande suivante : Cette commande supprimera l'enregistrement de l'hôte 192.168.100.5 du fichier knownhosts. 4. Une fois que vous avez réinitialisé l'entrée, vous pouvez vous connecter à nouveau à l'hôte distant en utilisant la commande . Cette fois-ci, la nouvelle clé publique sera enregistrée dans le fichier knownhosts, et vous devriez pouvoir vous connecter sans erreur. En suivant ces étapes, vous pourrez résoudre le problème lié au changement de la clé publique de l'hôte distant et vous reconnecter en toute sécurité.\nPossible usurpation DNS\nLorsque vous essayez de vous connecter à un hôte distant via SSH, vous pouvez rencontrer un avertissement indiquant une possible usurpation DNS. Voici le message d'erreur associé : Ce message indique que la clé de l'hôte distant \"raspberrypi\" a changé, mais l'adresse IP correspondante (192.168.100.84) est restée inchangée. Cela peut signifier deux choses : soit une usurpation DNS est en cours, soit l'adresse IP de l'hôte et sa clé de connexion ont changé simultanément. Pour résoudre ce problème, vous devez supprimer l'enregistrement associé à l'hôte en question. Vous pouvez le faire en utilisant la commande suivante : Cette commande supprimera l'enregistrement de l'hôte \"raspberrypi\" du fichier knownhosts. Une fois que vous avez supprimé l'enregistrement, vous pouvez essayer de vous reconnecter à l'hôte. Cette fois-ci, l'association entre le nom de l'hôte et sa clé sera enregistrée à nouveau dans le fichier knownhosts. Assurez-vous de suivre ces étapes pour garantir la sécurité de votre connexion SSH et éviter les risques potentiels liés à une usurpation DNS.\nChoix entre RSA et ECDSA\nLe choix entre l'utilisation d'ECDSA (Elliptic Curve Digital Signature Algorithm) ou de RSA (Rivest-Shamir-Adleman) dépend de plusieurs facteurs, notamment les considérations de sécurité et les préférences personnelles. ECDSA utilise des courbes elliptiques pour la génération de clés et les opérations de signature numérique. Il est généralement considéré comme plus efficace en termes de performances et d'utilisation de la bande passante. Les clés ECDSA sont également plus courtes que les clés RSA équivalentes, ce qui peut être avantageux dans certains cas. D'autre part, RSA est un algorithme de cryptographie asymétrique plus ancien et largement utilisé. Il est éprouvé et bien pris en charge par de nombreuses infrastructures et logiciels. RSA est généralement considéré comme étant plus sûr pour des longueurs de clé équivalentes, mais nécessite des clés plus longues pour offrir un niveau de sécurité comparable à ECDSA. En fin de compte, le choix entre ECDSA et RSA dépend de la compatibilité avec les systèmes existants, des performances souhaitées et des recommandations de sécurité spécifiques. Il est recommandé de se référer aux recommandations de sécurité en vigueur et de prendre en compte les spécifications et les exigences propres à votre environnement avant de faire un choix.\nScript Bash pour générer une clé privée SSH et configurer la connexion\nVoici un script Bash qui demande à l'utilisateur de saisir le nom de l'hôte distant, le numéro de port et son nom d'utilisateur pour se connecter via SSH. Il génère ensuite une clé privée et la pousse sur l'hôte distant. Enfin, il écrit un fichier de configuration dans le répertoire \".ssh/config\". Le nom de la clé privée générée sera basé sur le nom de l'hôte distant fourni par l'utilisateur, ce qui permet de générer des clés privées uniques pour chaque hôte distant. Par exemple, si l'utilisateur saisit \"srvprod.aceinternet.fr\" comme nom d'hôte distant, la clé privée sera enregistrée sous . Assurez-vous d'exécuter le script en tant qu'utilisateur disposant des droits nécessaires pour effectuer les opérations (par exemple, l'utilisateur courant doit pouvoir générer une clé privée, écrire dans le répertoire et copier la clé publique sur l'hôte distant)."},"score":0.75,"snippet":"est un programme pour se connecter à une machine distante et pour effectuer des commandes sur cette machine. La connexion et les échanges sont sécurisés. L'identité utilisé sur le poste distant peut être différente de l'…","tier":2},{"article":{"uuid":"7ef154a6-1b06-4b3e-b013-f246c708544a","slug":"une-contre-histoire-de-l-internet","title":"Une contre-histoire de l'Internet","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-03-14 21:30:39","created_at":"2023-03-14 21:30:39","updated_at":"2023-03-14 21:30:39","plain":"Une contre-histoire de l'Internet est un film documentaire français réalisé par Sylvain Bergère et diffusé à la télévision française pour la première fois le 14 mai 2013 sur la chaîne Arte. Ce film propose une analyse critique de l'histoire d'Internet et explore les idéologies, les mouvements et les personnages qui ont façonné l'Internet tel que nous le connaissons aujourd'hui. Le documentaire soutient que l'histoire officielle de l'Internet est souvent biaisée et laisse de côté les contributions importantes de nombreux acteurs qui ont joué un rôle clé dans son développement. Le documentaire explore également les aspects moins connus et parfois controversés de l'histoire de l'Internet, notamment la guerre froide, les mouvements anarchistes, les hackers et les activistes. Ce film examine les différents aspects de l'histoire de l'Internet, notamment l'émergence des réseaux sociaux, la lutte pour la liberté d'expression, la bataille pour le contrôle de l'Internet et l'impact des technologies de surveillance sur la vie privée. Il examine également les enjeux sociaux, politiques et économiques liés à l'utilisation de l'Internet. Dans l'ensemble, \"Une contre-histoire de l'Internet\" propose une perspective alternative sur l'histoire de l'Internet et cherche à susciter une réflexion critique sur son évolution et son utilisation dans le monde moderne.\nBenjamin Bayart (ancien président du FAI associatif French Data Network)\nJérémie Zimmermann (porte-parole de La Quadrature du Net)\nJohn Perry Barlow (cofondateur de l'Electronic Frontier Foundation)\nJulian Assange (rédacteur en chef de Wikileaks)\nLaurent Chemla (entrepreneur français du web)\nRichard Stallman (lanceur du projet GNU et président de la Free Software Foundation)\nEben Moglen (avocat de la Free Software Foundation)\nJeff Jarvis (journaliste et blogueur)\nDominique Cardon (sociologue)\nDavid Dufresne (journaliste et réalisateur de web-documentaires)\nVinton Cerf (« chef évangéliste de l'Internet chez Google et l'un des pères fondateur de l'Internet)\nDaniel Martin (créateur du département informatique de la DST)\nGénéral Jean Guyaux, dit « La Baleine » (ex-conseiller scientifique de la DST)\nJean Guisnel (journaliste français)\nOlivier Laurelli, dit « Bluetouff » (hacker, cofondateur du site web reflets.info4)\nAndy Müller-Maguhn (hacker, Chaos Computer Club de Berlin)\nPhilip Zimmermann (créateur de PGP)\nRafi Haladjian (ancien PDG de FranceNet)\nHervé Bourges (ancien président du CSA)\nValentin Lacambre (créateur du service Minitel « 3615 internet » et d'Altern.org)\nMarie-Françoise Marais (magistrate, présidente de l'HADOPI)\nOlivier Iteanu (avocat spécialiste du droit de l'Internet)\nBruce Schneier (cryptographe, spécialiste de la sécurité informatique)\nRickard Falkvinge (fondateur du Parti Pirate Suédois)\nTimo Toots (et) (artiste Estonien)\nBernard Benhamou (délégué aux usages de l'Internet en France, Ministère de la recherche)\nEmin Milli (en) (blogueur & cyber-dissident, Azerbaïdjan)\nKhadija Ismayilova (journaliste & cyber-dissidente, Azerbaïdjan)\nMarietje Schaake (eurodéputée, Pays-Bas)\nPeter Hustinx (contrôleur européen de la protection des données)\nStephane Urbach (hacktiviste, ex membre du groupe Telecomix, membre du Parti Pirate Allemand)\nMitch Altman (pionnier du mouvement des hackerspaces)"},"score":0.75,"snippet":"Une contre-histoire de l'Internet est un film documentaire français réalisé par Sylvain Bergère et diffusé à la télévision française pour la première fois le 14 mai 2013 sur la chaîne Arte. Ce film propose une analyse cr…","tier":2},{"article":{"uuid":"c220e51a-85fb-4f24-bb19-ba05491e2a3d","slug":"passwd","title":"passwd","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-03-14 07:53:28","created_at":"2023-03-14 07:53:28","updated_at":"2023-03-14 07:53:28","plain":"La commande est une commande utilisée dans les systèmes d'exploitation de type Unix, tel que Linux, pour changer le mot de passe d'un utilisateur. Lorsqu'un utilisateur exécute la commande dans un terminal, le système lui demande d'abord de saisir son ancien mot de passe pour vérifier son identité. Ensuite, il lui est demandé de saisir le nouveau mot de passe deux fois pour s'assurer qu'il a été correctement saisi. Si les deux saisies sont identiques, le système enregistre le nouveau mot de passe. Seuls les utilisateurs ayant les droits d'administration (tels que l'utilisateur dans Linux) peuvent utiliser la commande pour changer les mots de passe des autres utilisateurs. Il est généralement déconseillé d'utiliser la commande dans un script, car cela nécessiterait de saisir le mot de passe manuellement à chaque fois que le script est exécuté, ce qui peut ne pas être pratique ou sûr. Au lieu de cela, pour changer le mot de passe d'un utilisateur dans un script, il est recommandé d'utiliser la commande . Cette commande permet de changer le mot de passe d'un utilisateur en fournissant le nom d'utilisateur et le nouveau mot de passe directement en ligne de commande ou en utilisant des fichiers de texte. Changer son mot de passe\nPour changer votre mot de passe sous Linux en utilisant Bash, vous pouvez utiliser la commande . Voici les étapes à suivre :\nOuvrez un terminal Bash.\nEntrez la commande suivie de votre nom d'utilisateur Linux. Si vous êtes déjà connecté sous votre propre compte, vous pouvez omettre le nom d'utilisateur et simplement taper pour changer votre propre mot de passe. passwd nomutilisateur\nVous serez alors invité à entrer votre mot de passe actuel pour vous authentifier.\nEnsuite, vous serez invité à saisir votre nouveau mot de passe deux fois, pour confirmer qu'il est correct.\nUne fois que vous avez entré votre nouveau mot de passe, celui-ci sera mis à jour. Si tout s'est bien passé, vous devriez voir un message indiquant que votre mot de passe a été mis à jour avec succès. Vous pouvez maintenant utiliser votre nouveau mot de passe pour vous connecter à votre compte Linux. Lorsque vous changez votre mot de passe sur un système Linux, il est important de mettre à jour tous les autres secrets qui l'utilisent. Voici une liste de certains des secrets qui peuvent nécessiter une mise à jour :\nClés SSH : si vous utilisez des clés SSH pour vous connecter à des serveurs ou pour effectuer des opérations automatisées, vous devez mettre à jour les clés pour refléter votre nouveau mot de passe.\nCertificats SSL/TLS : si vous utilisez des certificats SSL/TLS pour sécuriser des connexions sur des sites web ou des applications, vous devez mettre à jour les certificats pour refléter votre nouveau mot de passe.\nConfiguration de l'application : si vous utilisez une application qui stocke votre mot de passe, vous devez mettre à jour la configuration de l'application pour refléter votre nouveau mot de passe.\nServices tiers : si vous utilisez des services tiers tels que des services de stockage de fichiers en ligne, des services de messagerie, etc., vous devez mettre à jour les informations d'identification de votre compte pour refléter votre nouveau mot de passe. Voici un exemple de script Bash qui vous permettra de mettre à jour plusieurs secrets après avoir changé votre mot de passe : Ce script utilise les commandes standard Linux pour mettre à jour les secrets courants qui peuvent nécessiter une mise à jour. Vous devez remplacer les noms de fichiers, de dossiers, d'utilisateurs, de mots de passe et autres informations par les vôtres. Vous pouvez également ajouter ou supprimer des commandes en fonction de vos besoins spécifiques. Notez que certaines commandes dans ce script nécessitent des privilèges d'administration, vous devrez donc peut-être exécuter le script avec le compte d'utilisateur ayant ces privilèges ou utiliser la commande .\nCréer un compte utilisateur\nPour créer un compte utilisateur, il est nécessaire d'utiliser le commande . Consultez la page concernant la commande useradd. Forcer un utilisateur à changer son mot de passe au prochain démarrage\nSous Linux, vous pouvez utiliser la commande \"passwd**\" avec l'option \"-e\" pour forcer un utilisateur à changer son mot de passe au prochain démarrage. La commande est généralement utilisée par un administrateur pour changer le mot de passe d'un utilisateur. Voici un exemple : Cela forcera l'utilisateur à changer son mot de passe lors de sa prochaine connexion. À noter que cette commande n'affectera pas les utilisateurs connectés en ce moment. Vous pouvez vérifier le fichier de contenant les informations cryptées des utilisateurs, que la date (en jours depuis le 1er janvier 1970) à laquelle le mot de passe a été modifié pour la dernière fois soit à la valeur 0. Vous pouvez utiliser la commande avec l'option pour afficher les informations de l'utilisateur, et vérifier que la date d'expiration du mot de passe est définie sur la mention / apparaisse. Vous pouvez utiliser la commande avec l'option pour vérifier les informations de l'utilisateur, et vérifier que la date d'expiration du mot de passe est définie sur un jour antérieur à aujourd'hui (par exemple le ) . Changer de mot de passe dans un script\nVoir la commande chpasswd"},"score":0.75,"snippet":"La commande est une commande utilisée dans les systèmes d'exploitation de type Unix, tel que Linux, pour changer le mot de passe d'un utilisateur. Lorsqu'un utilisateur exécute la commande dans un terminal, le système …","tier":2},{"article":{"uuid":"68c1cbf1-f57e-4e6b-b0be-358f9da802e0","slug":"flatseal","title":"flatseal","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-03-06 20:52:58","created_at":"2023-03-06 20:52:58","updated_at":"2023-03-06 20:52:58","plain":"Flatseal est un programme pour Linux qui permet aux utilisateurs de visualiser et de modifier les autorisations des applications flatpak. Les applications flatpak sont des applications Linux qui sont empaquetées avec toutes leurs dépendances et exécutées dans un environnement sandbox isolé. L'un des avantages de l'utilisation d'applications flatpak est qu'elles sont isolées les unes des autres et des autres parties du système, ce qui réduit les risques de sécurité. Cependant, cela signifie également que les applications flatpak ont des autorisations limitées pour accéder aux ressources du système, telles que les fichiers, les caméras et les microphones. Flatseal permet aux utilisateurs de modifier ces autorisations pour chaque application flatpak individuelle afin de leur accorder un accès supplémentaire aux ressources du système si nécessaire. Flatseal propose une interface graphique simple et facile à utiliser pour visualiser et modifier les autorisations des applications flatpak, ce qui le rend particulièrement utile pour les utilisateurs qui souhaitent avoir un contrôle plus granulaire sur les applications qu'ils utilisent. Les autorisations que l'on peut paramétrer avec Flatseal dépendent des autorisations d'accès prises en charge par les applications flatpak en question. Cependant, certaines des autorisations courantes que l'on peut paramétrer avec Flatseal incluent :\nAccès au réseau : permet à l'application d'accéder à Internet et à d'autres ordinateurs sur le réseau.\nAccès au système de fichiers : permet à l'application d'accéder aux fichiers et dossiers sur le système.\nAccès aux périphériques : permet à l'application d'accéder aux périphériques tels que les imprimantes, les scanners, les caméras et les microphones.\nAccès à la localisation : permet à l'application d'accéder à la position géographique de l'utilisateur.\nNotifications : permet à l'application d'afficher des notifications sur le bureau.\nAccès à l'interface graphique utilisateur : permet à l'application d'afficher des fenêtres et des boîtes de dialogue sur l'écran. En utilisant Flatseal, les utilisateurs peuvent activer ou désactiver ces autorisations en fonction de leurs besoins et préférences individuelles, offrant ainsi un contrôle supplémentaire sur les applications qu'ils utilisent. Il est possible de remplacer Flatseal par des commandes en bash pour gérer les autorisations des applications Flatpak. Flatpak utilise la sandboxing pour isoler les applications et restreindre leur accès aux ressources système, et ces restrictions sont gérées via des autorisations configurables. Les autorisations sont définies dans des fichiers de métadonnées pour chaque application Flatpak et peuvent être modifiées à l'aide de la commande en ligne de commande. Il existe de nombreuses options disponibles pour la commande , qui permettent de personnaliser les autorisations en fonction des besoins spécifiques de chaque application. Cependant, l'utilisation de la ligne de commande pour gérer les autorisations de Flatpak peut être plus complexe que l'utilisation de Flatseal, qui fournit une interface graphique utilisateur intuitive pour gérer les autorisations.\nhttps://flathub.org/apps/details/com.github.tchx84.Flatseal Alternative en ligne de commandes\nPour modifier les options pour l'utilisateur courant en ligne de commande, utilisez : flatpak override --user