Linux ! Et moi, et moi, et moi

Linux ! Et moi, et moi, et moi… On dirait le titre d’une chanson.

En janvier 2021 j’ai prodigué des cours d’initiation au bash via visioconférence pour les adhérents de Root66. Ce fût une excellente expérience. Pourtant je ne suis pas informaticien, d’autres adhérents de l’association root66 ont bien plus de connaissances et compétences que moi dans ce domaine, eux, ce sont des « pros », et j’ai pris cela comme un signe de confiance de leurs part. Ils m’ont même félicité ! J’ai été également très agréablement surpris du retour de ceux qui ont suivi cette formation, bon, ils sont adhérents, me connaissent, ils sont tous très sympathiques, donc peut-être pas tout à fait objectifs. Ce qui m’a fait plaisir est de savoir qu’ils se sont lancés sur leurs terminaux pour s’approprier la ligne de commande. Il y en a même un qui s’est installé un serveur sur virtualbox pour apprendre à gérer un serveur en ligne de commande dans le but de s’auto-héberger très prochainement.
Ce qui a mon avis était rassurant pour ceux qui suivaient la formation c’est justement le fait que je ne sois pas informaticien, cela démontrait que l’on peut faire beaucoup de choses pour soi-même sans être du métier.

Ce n’est pas parce que l’on a suivi des cours de secourisme que cela fait de nous un médecin.

Il en va de même en informatique, soit, je bricole un peu sous Linux mais contrairement à ce que pensent certains, le fait d’être sous Linux depuis une vingtaine d’années ne fait pas de moi un informaticien. Ça ne me fait pas non plus celui qui s’y connaît sous Windows, pire je suis devenu une vrai bille sous Windows, lorsque je dois connecter un poste sur le réseau je passe un temps fou avant de trouver la fenêtre où je vais pouvoir mettre l’IP, la passerelle, les DNS etc. D’ailleurs j’ai écrit un billet sur le sujet « Je ne suis pas le gentil gars qui s’y connaît en informatique.« 
Par contre, oui, avant de passer sous Linux, j’en ai fait des choses sous Windows, mais c’était l’époque où il fallait modifier à la main le fichiers autoexec.bat, modifier la mémoire virtuelle, etc., en fonction du jeux que l’on souhaitait faire tourner… Ha, là, je crois que j’ai perdu tous les jeunots qui n’ont pas connu cette période sous Windows. Pour résumer, je me débrouille tant bien que mal pour gérer mes pc, mon serveur, mais ça ne fait pas de moi un informaticien. Ça ne fait de moi pour autant un professionnel. On pourrait prendre d’autres exemples : j’ai mis de la faïence sans être carreleur, changer des robinets sans être plombier, etc. Mais aucune entreprise de carrelage ou de plomberie ne voudrait de moi car dans le ratio « résultat/délais » (beaux résultats mais très longs travaux) je suis complètement « out ». Et encore la faïence, c’est du linéaire, mais si Mme Sima m’avait demandé une fresque ?… Je pense que je lui aurais fait de l’art contemporain dont elle n’aurait pas saisi la subtilité artistique. Bref, nous restons amateurs.

Cela-dit, il y a différents niveaux d’amateurs. Je l’ai constaté de nombreuses fois dans mon cadre professionnel (lié à la botanique). Il y a celui qui se crée une culture générale en fonction des plantes qui l’intéresse, il sait les reconnaître, les cultiver, les entretenir… Et il y a le passionné et/ou collectionneur… Celui-là connaît généralement parfaitement une espèce, c’est-à-dire l’espèce de sa passion et toutes les variétés, botaniques et horticoles, les hybridations possibles, leur origines, leurs histoires, il sait les identifier avec précision, etc. Cet amateur avisé colle 98 % des botanistes PRO sur le sujet (sauf ceux ayant choisi la même spécialité). Mais, si vous demandez à cet amateur de s’intéresser à une autre espèce, il va devoir revoir une grande partie de ses acquis pour changer de centre d’intérêt, car il n’a souvent pas les bases fondamentales contrairement à un botaniste, qui lui a la méthodologie pour s’adapter rapidement d’une spécialité à une autre. Alors bien sûr, il y a toujours l’exception qui confirme la règle, le dilettante devenu chercheur… Mais bon, généralement le professionnel a des bases, une méthodologie que l’amateur n’a pas.

Linux : au commencement il y avait les cons !

Ha ce n’est rien de le dire et ça soulage… C’était l’époque de l’avant internet, l’époque des BBS (Bulletin Board System), du moins l’avant l’internet en France (il y avait le minitel), et moi je naviguais, heu, me connectais (car on ne naviguait pas) sur les BBS on s’y connectait… Pour limiter les frais téléphoniques de l’époque : tarifs local, départemental, régional, national, international, je pourrais vous raconté comme il était enfantin de pirater les bals téléphoniques [gros répondeurs des grosses entreprises, grands hôtels, etc.] pour communiquer à moindre prix, et ce depuis un combiné téléphonique, une cabine téléphonique, pas d’ordinateur, pas de console, juste un téléphone pour appeler à l’international pour un tarif local. Bon, je m’égare, donc à l’époque des BBS, j’avais un correspondant Étasunien à Chicago, qui me parlait internet et m’a persuadé de prendre un abonnement chez Compuserve (ça m’a coûté un bras à l’époque) mais j’ai découvert l’internet… Et le tout début de Linux. Immédiatement cela m’a intéressé. En fouillant j’ai trouvé des groupes de discussions en français concernant Linux. J’y ai posé des questions, signifié mon intérêt… Et quelle fût ma surprise des réponses. N’ayant pas le « sic » de ce qui me fût répondu je peux le résumer ainsi : t’es trop con reste sur Windows ! Linux, ce n’est pas pour toi ! Cherches pas à comprendre, reste sur Windows…

La liste des réponses n’est pas exhaustive et ce fût mon premier contact avec Linux. Soit, ils devaient être une poignée à être sous Linux et cela semblait les auréoler d’un prestige supérieur aux autres. C’est une réalité, au tout début, du moins dans les réseaux Francophones, il y avait une poignée de barbus sous Linux qui n’avaient rien compris à ce qu’était l’OS libre, la diffusion des connaissances, le partage. Bref, une poignée de cons ! Et je suis resté sous Windows mais dans un coin de mon cerveau il y avait Linux.

Rencontre inattendue… et premier Dual-Boot Linux/windows

Tout va très vite, peu de mois après mon abonnement Compuserve, des propositions de connexion grand public sont proposées en France, je change d’abonnement, des sites parlant de Linux se développent avec un ton différent, plus sympa, avec un esprit libre, je regarde tout cela de loin sans oser y intervenir, les premiers contacts m’ont vraiment refroidi même si je constate que le ton a changé. Il s’agit surtout de LUGs (GUL in french), et quelques distributions, il n’y a pas la richesse actuelle…
Je rencontre une connaissances, nos liens sont liés au politico-revendicatif, nous avons quelques divergences mais de nombreuses convergences, et en parlant de tout et de rien notre discussion en vient au pc, à l’internet…
Il me dit (j’écourte la discussion dont je ne me souviens pas des détails, mais dans les grandes lignes :

Je suis sous linux, tu connais ?
Moi : oui, je connais de nom et suis de loin en loin, mais sans plus.
Lui : Je suis membre de root66, une association…
Moi : je connais leur site, j’y vais de temps en temps.
Lui : si tu veux je te prête une disquette live pour tester.

Quelques jours plus tard il m’apporte une disquette live de Mandrake 7
Je teste quelques semaines et je suis séduit, je le lui dis et il me propose de m’installer Mandrake en double-boot. Rendez-vous donné pour le samedi suivant.
Rien ne se passe comme prévu, il passe l’après-midi puis le début de soirée, le temps passe il doit partir, moi aussi n’ai plus trop le temps… Il part ! Et si j’avais un PC en fonction je me retrouve avec un pc planté, plus rien ne fonctionne.
Je ne lui en veux pas, je sais qu’il a fait le maximum avec beaucoup de bonne volonté… Et je me souvient aussi lorsque je devais modifier mon fichier autoexec.bat, la mémoire virtuel pour faire tourner des jeux qu’il m’arrivait de me retrouver dans cette situation. Donc rien de dramatique de mon point vu le plus contrarié de nous était très certainement lui.
Je réinstalle mon windows98, me renseigne sur Mandrake et découvre que Mandrake7.8 se vent dans certains commerces, sans doute que cela ce trouvait en téléchargement libre, mais j’avais les réflexes windosiens. Bref, j’achète (12, 14 ou 16 disquettes, je me souviens plus), j’installe et là… Bingo, j’ai un Dual-Boot et tout fonctionne, windows et linux.

Merci JLD, sans lui je n’aurais pas franchi le pas.

L’évènement qui me fait passer au tout Gnu/Linux.

Je suis sur pc en double boot, je trouve cela un peu chiant embêtant, je me force a passer le plus de temps possible sous Linux sans pour autant trop modifier mes habitudes windosiennes… Puis !… Un jour notre lecteur familiale de cd dvd lâche. Je dis à Mme Sima, on va acheter un PC haut de gamme, avec carte tv et le tutti quanti pour être au top du top, ça remplacera le lecteur CD/DVD. Ça nous coûte les yeux de la tête.
Sauf qu’il est impossible de voir nos dvd sur la tv malgré la carte dédiée, les licences et tous les câbles… Je téléphone au service après vente qui me renvoie vers windows qui me renvoie vers le fabriquant de la carte tv, qui me renvoie vers windows. Une boucle sans fin et ça ne fonctionne pas.
Dans le même temps la diversité linux avance vite et bien, presque plus de disquettes mais des CD, de plus en plus de cd live et je découvre un cd live (je ne me souviens plus du nom) pour visualiser depuis notre pc, nos cd et dvd sur notre tv. Je n’y crois plus vraiment, puisque j’ai les cartes et licences propriétaires et que ça ne fonctionne pas et pourtant oui ! Je vois mon pc sur ma tv, soit, je dois modifier quelques paramètres pour l’adapter au format de ma tv, mais ça fonctionne. Coup de bol?! À une période où les linuxiens avaient des soucis avec les cartes proprio (c’est encore parfois le cas), moi le logiciel proprio ne fonctionne pas mais sous linux, oui… et sans rien faire de particulier.
La semaine suivant je passais au tout Gnu/Linux !
Bon, d’accord, une petite exception lorsque l’on m’a offert un Tomtom, j’ai dû remettre un Double Boot pour pouvoir synchroniser mon Tomtom, puis retour au « tout Linux » avec un windows en VM (VirtualBox) toujours pour la synchronisation du Tomtom. Depuis on m’a offert une version ressente qui synchronise via wifi, donc plus de windows.

Comment j’ai appris énormément grâce à Gnu/Linux.

C’était l’époque où l’on trouvait plein de pc aux encombrants, l’époque où l’on récupérait mémoire, disques durs, et diverses cartes…
C’est l’époque où trois de mes farfadets, bien que très jeunes, sont en âge de jouer sur ordinateur.
Je récupère 3 pc aux encombrants on se retrouve donc avec 4 pc et le début des mes expérimentations.
Je crée mon premier réseau  pour qu’ils aient accès à internet, mon premier proxy DansGuardian histoire de fliquer mes farfadets avec contrôles d’horaires de connexion. Oui, j’assume mon côté dictateur parental…
Sur ces trois pc, j’en ai testé des distributions ! Je me souvient de la première Debian (ce n’était pas en mode graphique) qui au milieu de l’installation me demande la marque et modèle de ma carte réseau m’obligeant à arrêter l’installation comme une brute, démonter le pc pour noter les marques et modèle de toutes les cartes… et certaines distributions qui nécessitaient des compilations interminables… J’ai aussi découvert des distributions que je trouvais innovantes mais n’ont pas été soutenues, je me souviens de Drinou-Linux, développée par un Français, si je ne me trompe pas, un certain certain Jean-Philippe Piers. J’aime testé du BSD  J’ai beaucoup utilisé RedHat aussi. Au travail j’ai découvert Scientific Linux que je ne connaissais pas et utilisée par des collègues.
C’est entre 2000 et 2010 que j’ai appris le plus et essayer de dompter le terminal.

C’était mieux avant ?

Non ! Ce n’était pas pire non-plus, c’était différent. Linux a énormément évolué et très rapidement. Certaines distributions ont disparu, d’autres ont émergé, elles s’installent généralement aux cliques, il y en a des « généralistes », des spécialisées, il y en a pour tous les goûts, la majorité des besoins. J’aurai tendance à dire que c’est plus simple que Windows, après une installation de quelques minutes (tout dépend du pc et de notre connexion) on se retrouve avec un système opérationnel avec des logiciels qui permettent immédiatement de travailler. J’utilise généralement l’interface graphique, je n’utilise le terminal que pour des résultats ou recherches spécifiques, ou lorsque je considère que la ligne de commande sera plus rapide qu’une application graphique : Par exemple renommer par lot toute une série de photos à partir des fichiers exif. Il existe certainement une application graphique qui le fait, mais le faire avec exiv2 me convient très bien.
Ce que j’aime surtout sous linux, c’est comme je l’ai dit, on peut trouver la distribution qui nous convient mais il y a aussi une multitude d’environnements (Gnome, KDE, XFCE, etc.) et tous configurables, de quoi trouver l’environnement qui nous plaît, avoir un linux qui nous ressemble.

Et maintenant, que vais-je faire ?

Actuellement et ce depuis déjà quelques années, je teste rarement de nouvelles distributions, sauf si lors d’une install-party il est demandé quelque chose de particulier et que c’est sima78 qui si colle, mais c’est rare, j’essaie de refiler le bébé. Je ne teste pas ou très rarement d’applications dont je n’ai pas besoin mais cela peut arriver par curiosité… Bref, je ne me casse plus la tête.
Je vais poursuivre dans cette lignée, la simplification. Par exemple je ne désespère pas convaincre Mme Sima pour l’achat d’une nouvelle machine pour remplacer le serveur actuel (nous n’avons pas la même notion des priorités) et je le passerai sous Debian (il y est déjà) mais ce sera avec la petite couche YunoHost en plus. Si l’on peut être sous Gnu/Linux sans prise de tête, et cela depuis déjà un nombre d’années, ça devient aussi le cas pour l’auto-hébergement dont je suis persuadé que ce sera de plus en plus simple.

Maintenant vous savez presque tout sur ma relation avec Gnu/Linux.

Mettre un filigrane sur des documents officiels – ligne de commande

Mettre un filigrane [ImageMagick] et supprimer les métadonnées [ExifTool] sur des documents officiels que nous devons envoyer via le web ou par mail.

Le tout en ligne de commande depuis un terminal.

Un billet comme un conseil dans ce monde soi-disant idéal de la dématérialisation.

Dans beaucoup de procédures télématiques, il nous est demandé des copies de nos documents personnels, tel que notre pièce d’identité (on va prendre cet exemple dans ce billet).

L’idée de ce billet me vient d’une discussion téléphonique avec une administration qui me demandait d’envoyer une photocopie ou scan de ma carte d’identité.

Curieux, je demande : D’accord, qu’allez-vous faire de cette pièce, c’est très personnel, où sera t-elle stockée, pour combien de temps ? Quelle garantis donnez-vous ?
Réponse : Ne vous inquiétez pas, nous avons des services très spécialisés et toutes les données sont cryptées !
Ha, le mot est lâché, rassurant, « cryptées »…
Moi : Vous me demandez d’envoyer par mail, ça arrive sur une boite mail où je suppose que plusieurs personnels du service y ont accès, comment est géré la boite mail, qui y a accès, est-elle sécurisée ?…
Réponse : Faites-le directement depuis notre site web, il y a le petit cadenas en haut à gauche, tous est crypté…
Ouh là là, « crypté » le mot qui se voudrait rassurant et qui pourtant me fait pousser les poils des oreilles.
Moi : soit, la communication de bout en bout est chiffrée, mais une fois ma pièce envoyée, la carte d’identité, que devient-elle ?
Réponse : Nous avons des spécialistes de la sécurité et tout est crypté…
Moi : bon je résume, je vous envoie un document en clair, transparent via votre site, il se retrouve quelque part sur l’un de vos disques durs, sans que je sache qui y a accès ni ce que deviendra ce document…
Il me coupe la parole… : Je vous l’ai dit, tout est sécurisé et crypté…
Moi : Je peux imaginer que l’accès aux disques ou support soient sécurisés, que les disques dur soient chiffrés, ou comme vous dites, cryptés, mon document lui est en clair et les disques, une fois montés et même chiffrés, les données restent en clair…

Bon je vous fais grâce de la suite de la discussion de sourd.

Dans un monde idéal…

Une fois votre document scanné, l’idéal est de réaliser un chiffrement asymétrique, soit avec votre certificat numérique, soit avec d’une autre façon comme par exemple en utilisant « gpg » (j’aime bien gnupg, je l’utilise pour mes signatures et chiffrement de mes mails et autres…) afin que personne ne puisse lire le document envoyé, sauf celui qui doit le réceptionner.

Mais que ce soit dans l’administration ou ailleurs, il est très rare que l’on se préoccupe réellement de la sécurité de ce que l’on envoie.

Ajouter un filigrane.

Dans le cas où le destinataire ne sait pas comment fonctionne le chiffrement et c’est malheureusement souvent le cas, nous pouvons choisir l’option d’ajouter un filigrane à nos documents privés. D’autant plus que nous ne saurons pas où sera notre document ni pour combien de temps…

Nous allons ajouter en ligne de commande un filigrane sur notre document avec ImageMagick.

Vérifions s’il est déjà, ou pas, installé sur notre pc.

dpkg --get-selections | grep imagemagick
imagemagick             install
imagemagick-6-common    install
imagemagick-6.q16       install 

Si vous avez quelque chose de similaire à ci-dessus, c’est qu’il est installé, sinon il n’afficherait rien.
S’il n’est pas installé, il suffit de :

sudo apt install imagemagick

Une fois installé, nous pouvons utiliser tous les outils « ImageMagick ». Dans cet exemple, nous partirons d’une image test que j’ai trouvé sur le net et qui porte le nom « CNI-blog.jpg », vous l’aurez remarqué, je suis un peu plus vieux que sur la photo :

Afin d’ajouter un filigrane à l’image, nous allons exécuter la commande « convert » avec les options suivantes dans le même répertoire où se trouve notre image:

convert -density 150 -fill "rgba(255,0,0,0.25)" -gravity Center -pointsize 60 -draw "rotate -45 text 0,0 'COPIE'" CNI-blog.jpg CNI-blog-final.jpg

Description des options utilisées:

  • density: La résolution de la largeur de l’image avec l’unité de points par pouce (PPI).
  • fill: Couleur à utiliser.
  • gravity Center: position du texte, dans ce cas centrée sur l’image.
  • pointsize: taille en points de la police.
  • draw: annoter l’image avec une précision. Dans ce cas, avec un texte pivoté de 45 degrés dans le sens antihoraire dans les coordonnées X, Y 0,0 et le texte entre guillemets simples.
  • Ensuite, le fichier source où les modifications seront appliquées (CNI-blog.jpg) et le fichier de destination qui sera créé (CNI-blog-final.jpg).

Le résultat :

Pour compliquer les choses il conviendrait de personnaliser notre filigrane en fonction de chaque procédure:

convert -density 150 -fill "rgba(255,0,0,0.50)" -pointsize 15 -draw "rotate -15 text 0,200 'COPIE POUR TRAITEMENT'" -draw "rotate -15 text -25,260 'DE RECENSEMENT'" CNI-blog.jpg CNI-blog-final-02.jpg

Résultat suivant :

Supprimer les métadonnées

Pour terminer, nous pouvons supprimer les métadonnées effaçables du fichier (en fait il faudrait commencer par là) avec le programme « exiftool« , ce programme peut être installé à partir des dépôts :

sudo apt install exiftool

Puis :

exiftool CNI-blog-final-02.jpg

Et pour supprimer les métadonnées de notre fichier image avec le filigrane créé, nous allons exécuter :

exiftool -all= CNI-blog-final-02.jpg
    1 image files updated

Pour voir que les métadonnées ont bien disparu comme le montre l’image ci-dessus, exécutez :

exiftool dni-final.jpg

Ces étapes nous ont permis d’apposer un filigrane sur un document privé et de supprimer les métadonnées, de sorte à sécurisé à minima ce que nous envoyons.

J’espère que ces petites astuces vous aideront tout en restant loin de la préservation de la vie privée, mais parfois l’on doit faire à minima.

Script shell : retrouvez un nom de fichier (odt ou ods) depuis un mot clé

Script shell : retrouvez un nom de fichier (odt ou ods) depuis un mot clé.

Vous recherchez un fichier dont vous ne vous souvenez pas du nom mais vous savez qu’il contient certains mots, retrouver ce fichier avec l’un des mots « clés ».

On peut aussi rechercher dans les fichiers « doc » ou « xls », mais une raison que je ne m’explique pas les résultats sont moins convaincants.

Lors de mes tests sur les fichiers « doc », il m’affichait des résultats de fichiers contenant le mot clé mais en excluait d’autres qui contenait ce même mot clé !? Peut-être que cela est dû au fait qu’ils n’ont pas été enregistrés avec les mêmes versions Word ? Bref, je n’ai pas de réponse pour ces extensions propriétaires.

Voici donc le script, rien de révolutionnaire, je n’invente rien, que des trucs que j’essaie d’adapter :

#!/bin/bash
# Recherche une chaîne de caractères dans tous les fichiers odt ou ods
# de façon récursive depuis le lieu de recherche.

# Syntaxe :
# nomduscript.sh "chaîne à rechercher" (sans guillemets).
# Répondre à la première question par odt ou ods
# Fonctionne partiellement avec doc ou xls ????
# Pour limiter la rechercher mettre le chemin absolu...

# exemple : "/home/user/Documents" (sans les guillemets).
# Pour une recherche depuis l'endroit où se trouve le script
# il suffit de taper un point "." (sans les guillemets).

echo "Dans quelle type de fichier penses-tu chercher ?"
echo -n "Saisir le type de fichier (odt ou ods) : "
read exten
echo -n "Saisir le chemin de départ : "
read chemin
find $chemin -type f -name "*.$exten" | while read i
do
[ "$1" ] || { echo "Bah ! Tu as oublié de mettre le mot recherché..." ; exit 1 ; }
unzip -ca "$i" 2>/dev/null | grep -iq "$*"
        if [ $? -eq 0 ]
        then
                echo "j'ai trouvé ton mot dans $i" | nl
        fi
done
echo "J'ai terminé mon travail !"
Une fois que vous avez sauvegardé ce script sous le nom de votre choix. Pour l’exemple nous allons le nommer search_mot.sh
Donc une fois votre fichier search_mot.sh créer il faut le rendre exécutable :
chmod +x search_mot.sh
Comment l’utiliser ? Il suffit de lancer le script avec le mot clé recherché (en fait, le mot clé est une chaîne de caractères). Exemple « script mot-clé » :
./search_mot.sh taxodiaceae

Le script va demander l’extension de fichier (odt ou ods) sachant que vous pouvez mettre doc ou xls mais avec un résultat moins probant… et je n’ai pas d’explication… Mais testez…

Puis il sera demandé le chemin de départ. Il s’agit du chemin absolu.

Donc soit la racine « / », soit votre home « /home/user/ »… Ou un autre chemin pou serrer au plus prêt la recherche. Mais il doit être absolu et partir de la racine /

Bon assez parlé et mon exemple avec les résultats en lançant le script plus le mot clé (ici taxodiaceae) :

./search_mot.sh taxodiaceae
Dans quelle type de fichier penses-tu chercher ?
Saisir le type de fichier (odt ou ods) : odt
Saisir le chemin de départ : /home/sima78/
1 j'ai trouvé ton mot dans /home/sima78/Documents/Bota/fiche/chryptomeria.odt
1 j'ai trouvé ton mot dans /home/sima78/Documents/Bota/cle_identif/chryptomeria_japonica .odt
1 j'ai trouvé ton mot dans /home/sima78/Documents/Bota/noms-familles/taxodiaceae.odt
1 j'ai trouvé ton mot dans /home/sima78/Documents/Bota/in-situ/chryptomeria_japonica.odt
1 j'ai trouvé ton mot dans /home/sima78/Documents/Bota/coniferes.odt
1 j'ai trouvé ton mot dans /home/sima78/Documents/Pedago/parcours/anim-0018.odt
J'ai terminé mon travail !
Voilà, bien entendu, vous pouvez perfectionner le script, le simplifier, je suis preneur…