Files
varlog/_cache/similar/e42eaf36-b320-4c3d-bafc-3dcd725c44a5.json
T
2026-05-15 10:37:48 +02:00

1 line
24 KiB
JSON

[{"uuid":"37463f14-b96a-4d3d-bed8-14173e668cd0","slug":"activer-line-in","title":"Activer Line In","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2021-01-16 04:01:46","created_at":"2021-01-16 04:01:46","updated_at":"2021-01-16 04:01:46","tags":[],"plain":"> Activer\n> Désactiver ou xx est le numéro du module renvoyé lors de l'activation."},{"uuid":"976fd7f0-e53d-44e2-a879-58194765f3cf","slug":"activer-les-mises-a-jour-automatiques-sur-debian-pour-une-gestion-simplifiee-des-correctifs-de-securite","title":"Activer les mises à jour automatiques sur Debian pour une gestion simplifiée des correctifs de sécurité","category":"linux","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2026-01-06 20:45","created_at":"2026-01-06 20:45:52","updated_at":"2026-05-14 07:54:59","tags":{"logiciels":["Debian"]},"plain":"Dans un environnement de serveur ou de poste de travail, maintenir un système à jour avec les derniers correctifs de sécurité est crucial pour limiter l'exposition aux vulnérabilités. Debian fournit pour cela le paquet , qui automatise l'application des correctifs sans intervention manuelle. Cet article décrit comment l'installer, le configurer pour ne traiter que les mises à jour de sécurité, vérifier qu'il est bien actif, et tester son fonctionnement. La progression va du chemin minimal (sections 1 à 3) vers les réglages avancés utiles en production (sections 4 et suivantes). Étapes pour activer les mises à jour automatiques 1. Installer les paquets nécessaires On installe (qui applique les mises à jour) et, optionnellement mais recommandé, (qui résume les changements appliqués et peut les envoyer par e-mail) : À noter : sur Debian 12 (Bookworm) et versions ultérieures, n'est plus installé par défaut, même avec un environnement de bureau. À l'installation, pose quelques questions débconf (mode de remise : , , ; adresse mail destinataire ; fréquence). La valeur par défaut () convient pour un poste de travail ; sur un serveur, choisir et indiquer l'adresse de l'administrateur, après s'être assuré qu'un MTA local (postfix, msmtp…) est en place. Pour reconfigurer ultérieurement : 2. Activer le scheduling : La configuration d' se fait via deux fichiers dans :\n: quand déclencher la mise à jour (activation du scheduling)\n: quoi mettre à jour (origines, blacklist, redémarrage, mail…) Le premier peut être généré automatiquement avec : Une unique question débconf apparaît — « Automatically download and install stable updates? » — répondez Oui. Cela crée avec le contenu suivant : Sans ce fichier, est installé mais ne s'exécute jamais automatiquement. 3. Vérifier les origines dans Éditez le fichier : Sur Debian, les origines autorisées sont définies dans le bloc . Par défaut, seules les mises à jour de sécurité sont actives. Vérifiez la présence des lignes suivantes, non commentées : (La seconde ligne couvre l'ancien format d'étiquetage des dépôts de sécurité ; il est prudent de conserver les deux.) Optionnel : pour appliquer aussi les mises à jour fonctionnelles (corrections de bugs non critiques), décommentez la ligne correspondant aux updates : À utiliser avec discernement sur un serveur de production : ces mises à jour ne sont pas urgentes du point de vue sécurité et peuvent introduire des changements de comportement. À ce stade, la configuration minimale est terminée : les mises à jour de sécurité Debian seront appliquées automatiquement. Les sections suivantes couvrent les réglages utiles pour un usage en production. 4. Tester la configuration Lancez une simulation pour vérifier ce qui serait installé sans rien modifier : (Le binaire s'appelle bien au singulier ; le pluriel fonctionne aussi grâce à un lien symbolique.) La sortie est verbeuse. Les lignes à repérer sont :\n: doit lister les origines configurées en section 3 (au moins ).\n: les paquets exclus (voir section 6).\nou : ce qui serait installé.\n: message normal si aucune mise à jour de sécurité n'est en attente. Si une origine attendue n'apparaît pas dans Allowed origins, la ligne correspondante dans est probablement encore commentée. 5. Planification (timers systemd) L'exécution est pilotée par deux timers systemd fournis par le paquet : (téléchargement) et (installation). Par défaut, l'installation se déclenche tous les jours autour de 6h avec un délai aléatoire d'une heure. Pour vérifier l'état des timers : Pour modifier l'heure d'installation, créez un override : Et placez-y : Puis rechargez : 6. Réglages utiles en production Toujours dans , quelques options méritent d'être activées : Si vous désactivez le redémarrage automatique (recommandé en production), il faut un mécanisme pour savoir quand un reboot devient nécessaire — sinon les mises à jour de noyau s'accumulent silencieusement et la machine reste vulnérable jusqu'au prochain redémarrage manuel. Trois pistes complémentaires :\nLe fichier est créé automatiquement par les paquets qui exigent un reboot. Un simple dans un script de monitoring ou un motd suffit à le signaler à la connexion.\nInstaller () : il identifie les services à redémarrer après la mise à jour d'une bibliothèque (libc, openssl…), ce qui évite souvent un reboot complet. La commande liste les actions à entreprendre.\nLe mail envoyé par mentionne explicitement les paquets installés ; un redémarrage de noyau y est visible. 7. Cas des dépôts tiers Le bloc par défaut ne couvre que les dépôts Debian officiels. Les paquets installés depuis des dépôts tiers (Docker, PostgreSQL upstream, Nodesource, dépôts maison…) ne seront pas mis à jour automatiquement, alors même qu'ils concentrent souvent les CVE critiques sur un serveur. Pour les inclure, il faut ajouter leur pattern à . Par exemple pour Docker : Pour identifier l'origine et l'archive d'un dépôt : Repérez les champs (origin) et (archive/suite) dans la sortie ; ce sont eux qui doivent correspondre à votre pattern. Activer un dépôt tiers en mise à jour automatique demande de la confiance dans la stabilité de ce dépôt — testez d'abord en . 8. Vérifier les logs Les actions effectuées sont journalisées dans : Le premier trace l'activité d' lui-même (origines, paquets pris en compte, succès/échec) ; le second contient la sortie complète de pour chaque paquet installé.\n-- En activant correctement configuré, les correctifs de sécurité Debian sont appliqués rapidement et sans intervention manuelle. Sur un serveur de production, il reste essentiel de blacklister les paquets critiques pour votre stack, de configurer une notification par mail, de surveiller si le redémarrage automatique est désactivé, et de penser explicitement à inclure vos dépôts tiers dans . Les mises à jour majeures (changement de version Debian) restent toujours à faire à la main."},{"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","tags":[],"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."},{"uuid":"3e7ef528-6bd0-4fd1-83cb-a0d03ba35949","slug":"npm-le-ver-dans-le-fruit-comprendre-la-faille-systemique-et-repenser-les-pratiques-devops","title":"NPM, le ver dans le fruit : comprendre la faille systémique et repenser les pratiques DevOps","category":"informatique","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2026-05-12 13:08","created_at":"2026-05-12 13:08:44","updated_at":"2026-05-12 13:12:42","tags":[],"plain":"À propos de l'article du MagIT « NPM : une nouvelle campagne malveillante souligne une vulnérabilité systémique ».\r\n\r\nNPM expliqué simplement\r\n\r\nQuand on développe une application web moderne en JavaScript ou TypeScript, on ne réécrit jamais tout depuis zéro. On assemble des briques logicielles déjà écrites par d'autres : un module pour parser des dates, un autre pour valider des emails, un troisième pour discuter avec une base de données. Ces briques s'appellent des paquets, et la place de marché centrale qui les distribue s'appelle npm (Node Package Manager).\r\n\r\nConcrètement, dans un projet, on déclare la liste des paquets nécessaires dans un fichier . On lance la commande , et l'outil télécharge automatiquement les paquets demandés… ainsi que tous les paquets dont ces paquets ont eux-mêmes besoin. Un projet « simple » se retrouve souvent à dépendre de plusieurs centaines, voire plusieurs milliers, de paquets en cascade. C'est ce qu'on appelle l'arbre des dépendances.\r\n\r\nLe registre npm héberge aujourd'hui plus de 2,5 millions de paquets. C'est à la fois sa force — un écosystème colossal, une productivité décuplée — et sa faiblesse : la confiance accordée à chaque maillon de la chaîne est implicite, et chaque maillon devient une porte d'entrée potentielle.\r\n\r\nLa faille : ce qui s'est passé\r\n\r\nL'épisode décrit par LeMagIT n'est pas un bug logiciel classique. C'est ce qu'on appelle une attaque sur la chaîne d'approvisionnement logicielle (supply chain attack) : au lieu d'attaquer directement la cible finale, l'attaquant compromet un fournisseur en amont, et laisse la mise à jour légitime faire son travail de propagation.\r\n\r\nLe scénario reconstitué se déroule en plusieurs temps.\r\n\r\n1. Compromission d'un paquet de confiance. Les attaquants sont parvenus à pousser du code malveillant dans des paquets npm largement utilisés, notamment via le détournement du pipeline d'intégration continue de projets connus comme et l'écosystème Checkmarx. L'astuce n'est pas de publier un faux paquet : c'est de modifier un vrai paquet en exploitant les GitHub Actions — les robots qui construisent et publient automatiquement les nouvelles versions.\r\n\r\n2. Vol de secrets à l'installation. Une fois installé sur la machine d'un développeur ou dans un environnement de build, le code malveillant scanne l'environnement à la recherche de variables sensibles : , , , . Tout ce qui traîne dans les variables d'environnement, les fichiers , les configurations cloud.\r\n\r\n3. Auto-propagation. C'est là que l'attaque devient virale. Avec les jetons npm volés, le maliciel se reconnecte au registre npm, récupère la liste des paquets publiés par la victime, et publie automatiquement des versions piégées de ces paquets. Chaque développeur compromis devient un super-propagateur. Socket a identifié une quarantaine de paquets infectés en cascade lors d'une seule vague.\r\n\r\n4. Persistance. Sur les postes touchés, le malware installe un script pour survivre aux redémarrages, et, si nécessaire, exfiltre les données volées dans un dépôt GitHub public créé pour l'occasion.\r\n\r\nLe résultat : un binaire signé, publié sous un nom officiel, à jour, qui passe tous les contrôles de surface — et qui contamine simultanément le poste du développeur et les serveurs de production.\r\n\r\nPourquoi c'est « systémique »\r\n\r\nLe terme employé par LeMagIT est juste. Ce n'est pas un bug isolé, c'est une propriété structurelle de l'écosystème.\r\n\r\nLa confiance est transitive. On fait confiance à , qui fait confiance à , qui fait confiance à , etc. Compromettre un nœud profond et populaire suffit à toucher des millions de projets.\r\n\r\nLa publication est ouverte. N'importe qui peut publier un paquet. Les contrôles existent (provenance, 2FA pour les mainteneurs populaires) mais restent surtout a posteriori.\r\n\r\nLes scripts d'installation s'exécutent automatiquement. Un paquet npm peut déclarer un qui lance du code arbitraire au moment de . C'est pratique, mais c'est aussi un cheval de Troie idéal.\r\n\r\nLes jetons d'API sont partout. Le poste du développeur, les runners CI/CD, les serveurs : tous manipulent des secrets en clair dans des variables d'environnement. Un malware qui s'exécute dans le build n'a même pas besoin d'escalader ses privilèges.\r\n\r\nLes versions sont mutables sur fenêtre courte. Un paquet peut être republié dans les 72 heures suivant sa publication, et un peut retirer une version d'un jour à l'autre.\r\n\r\nAucun de ces points n'est un défaut technique réparable par un patch. Ce sont des choix d'architecture, vieux de plus de dix ans, qui ont accompagné l'explosion de l'écosystème.\r\n\r\nY a-t-il des alternatives ?\r\n\r\nLa question est légitime, mais la réponse honnête est : pas vraiment, et pour de bonnes raisons.\r\n\r\nLes gestionnaires de paquets alternatifs\r\n\r\n, et sont des gestionnaires différents, mais ils tirent leurs paquets du même registre npm. Migrer de à ne change rien à la surface d'attaque : ce sont les mêmes paquets, le même registre, les mêmes mainteneurs.\r\n\r\nCela dit, certains apportent des garde-fous utiles :\r\na introduit l'option , qui refuse d'installer un paquet publié il y a moins de N jours. Une vague d'attaque dure typiquement quelques heures avant détection : attendre 72 heures avant d'installer une nouvelle version élimine la fenêtre dangereuse.\r\nimpose un consentement explicite pour les scripts , là où npm les exécute par défaut.\r\net proposent des lockfiles stricts () qui garantissent que ce qui est installé en CI correspond exactement à ce qui a été testé.\r\n\r\nLes registres alternatifs\r\n\r\nJSR (JavaScript Registry), lancé par les créateurs de Deno, est le seul vrai nouveau registre crédible. Il a été conçu en tirant les leçons des problèmes de npm : TypeScript natif, modules ECMAScript par défaut, pas de scripts d'install, scoring qualité automatique, compatible avec tous les runtimes (Node, Deno, Bun). Mais JSR est complémentaire, pas un remplaçant : il héberge des milliers de paquets, pas des millions. Pour la majorité des dépendances, on continuera de passer par npm.\r\n\r\nLes registres privés — Verdaccio, GitHub Packages, JFrog Artifactory, Sonatype Nexus — ne remplacent pas npm non plus. Ils servent de proxy filtrant : on continue de récupérer les paquets publics, mais à travers un cache d'entreprise où l'on peut bloquer une version, exiger une signature, refuser un mainteneur, ou interdire les paquets publiés depuis moins de X jours. C'est probablement le meilleur compromis disponible aujourd'hui pour une organisation.\r\n\r\nLe verdict\r\n\r\nAbandonner npm en 2026 reviendrait à abandonner JavaScript. La valeur de l'écosystème (2,5 millions de paquets) est trop importante pour qu'on en sorte. Le problème ne se résoudra pas par un changement d'outil ; il se résoudra par un changement de pratiques.\r\n\r\nChanger les pratiques : ce qui doit devenir réflexe\r\n\r\nL'enseignement de cette campagne, et des précédentes (Shai-Hulud, TeamPCP, l'attaque Trivy/KICS), tient en une phrase : la confiance par défaut est morte. Il faut traiter chaque dépendance comme du code hostile par défaut, et le pipeline CI/CD comme une zone de production.\r\n\r\nAu niveau du poste de développement\r\nActiver l'option (ou équivalent) pour différer l'installation des paquets fraîchement publiés.\r\nDésactiver les scripts par défaut, et n'autoriser que ceux explicitement validés.\r\nNe jamais stocker de jetons en clair dans ou les variables d'environnement persistantes. Préférer un gestionnaire de secrets (1Password CLI, , ).\r\nUtiliser des comptes npm séparés pour la publication, avec 2FA matérielle obligatoire.\r\n\r\nAu niveau du dépôt\r\nVerrouiller systématiquement les dépendances (, , ) et installer en mode strict (, ).\r\nMettre en place un audit automatique des dépendances à chaque PR (Socket, Snyk, GitHub Dependabot, ).\r\nPublier ses propres paquets avec provenance npm (signature liée au pipeline GitHub Actions), pour que les consommateurs puissent vérifier l'origine.\r\nTenir à jour un SBOM (Software Bill of Materials) pour savoir exactement ce qui tourne en production.\r\n\r\nAu niveau du CI/CD\r\n\r\nC'est probablement le chantier le plus important.\r\nCloisonner les jetons. Un jeton de publication npm ne doit jamais coexister avec un jeton AWS dans la même étape de pipeline. Un secret par étape, durée de vie minimale, scope minimal.\r\nPréférer les jetons à courte durée de vie (OIDC entre GitHub Actions et le cloud) plutôt que des clés statiques.\r\nAuditer les GitHub Actions tierces. Une action est l'équivalent d'un . Épingler par hash SHA (), pas par tag mutable.\r\nRestreindre les permissions du au strict minimum ( par défaut, ponctuel et justifié).\r\nSurveiller le comportement réseau des runners : un build qui contacte un domaine inconnu doit lever une alerte.\r\n\r\nAu niveau de l'organisation\r\nMettre en place un registre proxy (Verdaccio, Nexus, Artifactory) avec liste blanche/noire de paquets, et l'imposer comme unique source pour tous les projets.\r\nDéfinir une politique de dependency governance : qui peut introduire une nouvelle dépendance, sous quelles conditions, avec quel niveau d'audit.\r\nPrévoir un playbook de révocation : que faire dans l'heure qui suit la détection d'un paquet compromis (rotation de tous les jetons npm/GitHub/cloud, audit des artefacts publiés, communication).\r\n\r\nEn résumé\r\n\r\nNPM n'est pas cassé, il est tel qu'il a été conçu : ouvert, automatique, transitif. Ce qui a changé, c'est la valeur que les attaquants peuvent en extraire — secrets cloud, jetons CI/CD, accès aux pipelines — et la sophistication des campagnes, qui exploitent désormais l'auto-propagation pour atteindre une échelle virale.\r\n\r\nAucune alternative ne supprime le problème, parce que le problème n'est pas npm : c'est l'idée qu'on puisse exécuter en production du code écrit par des inconnus sans jamais le regarder. Le rôle du DevOps en 2026, c'est de bâtir l'infrastructure qui rend cette inspection systématique, économique et inévitable — registres proxy, lockfiles stricts, jetons éphémères, audits continus, isolation des étapes de build.\r\n\r\nOn ne fera pas confiance à moins de gens. On exigera juste que chaque maillon prouve, à chaque exécution, qu'il est bien celui qu'il prétend être."},{"uuid":"cd001ba7-bee5-410d-ba6b-123e2986ec88","slug":"installer-gscan2pdf-linux-mint-22","title":"Installer gscan2pdf sur Linux Mint 22","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-02-09 14:55:00","created_at":"2025-02-09 14:55:00","updated_at":"2025-02-09 14:55:00","tags":[],"plain":"À l'heure où j'écris cet article, le paquet gscan2pdf est disponible en DEB dans le dépôt officiel en version 2.13.2. Sous Linux Mint 22.1 Cinamon, cette version ne fonctionne pas, tandis que la version 2.13.4 fournie par le PPA fonctionne parfaitement. Installation de GScan2pdf et de ses dépendances\nCe guide vous explique comment installer gscan2pdf sur Linux Mint 22 Cinnamon (basé sur Debian). 1. Mettre à jour le système\nAvant d'installer de nouveaux paquets, il est recommandé de mettre à jour votre système pour éviter les conflits de dépendances. Exécutez : 2. Ajouter le PPA de gscan2pdf\nAjoutez le PPA de Jeffrey Ratcliffe, le mainteneur de gscan2pdf : Attention : L'ajout de dépôts PPA permet d'accéder à des versions plus récentes de logiciels qui ne sont pas encore disponibles dans les dépôts officiels de Linux Mint. Toutefois, utilisez-les avec précaution, car ils peuvent introduire des paquets instables. 3. Mettre à jour les sources de logiciels\nAprès avoir ajouté le PPA, mettez à jour la liste des paquets pour inclure les nouvelles versions disponibles : 4. Installer gscan2pdf\nInstallez gscan2pdf ainsi que toutes ses dépendances en exécutant : 5. Installer le module OCR pour la langue française\nPour activer la reconnaissance optique de caractères (OCR) en français, installez le paquet tesseract-ocr-fra : Cela ajoutera le support de la langue française à Tesseract, le moteur OCR utilisé par gscan2pdf. 6. Lancer gscan2pdf\nUne fois l'installation terminée, vous pouvez lancer gscan2pdf depuis le menu des applications ou en tapant dans un terminal : L'interface vous permettra de numériser des documents, d'effectuer une reconnaissance de texte (OCR) et d'exporter vos fichiers en PDF ou d'autres formats. Désinstallation de gscan2pdf\nSi vous souhaitez désinstaller gscan2pdf, utilisez la commande suivante : Cette commande supprimera le programme ainsi que ses fichiers de configuration. Informations complémentaires\nPage du projet : https:gscan2pdf.sourceforge.net/ Documentation : https:doc.ubuntu-fr.org/gscan2pdf Liste des mises à jour : https://sourceforge.net/p/gscan2pdf/code/ci/master/tree/History"}]