Script – afficher les donnees Exif sur Thunar

Afficher les métadonnées EXIF avec un clic droit sur Thunar

Ha, il y a longtemps que je n’ai pas écrit sur le sujet !

Sur les PC sous un environnement Gnome avec le gestionnaire de fichiers Nautilus j’applique la méthode décrite dans mon l’article « Afficher les métadonnées exif avec un clic droit sur Nautilus » écrit en 2015 (il y a une légère modification sur le script d’aujourd’hui, mais les deux fonctionnent).

Il se trouve que le PC que j’utilise le plus souvent ces derniers temps est sous Manjaro avec un environnement XFCE et donc Thunar comme gestionnaire de fichiers.

Pour infos

Il existe de nombreuses similitudes avec l’article mentionné plus haut. La principale différence réside dans l’emplacement du script ainsi qu’une procédure spécifique à effectuer sous Thunar, qui ne s’applique pas à Nautilus.
Il est possible de remplacer Zenity par Yad, et Exiv2 par Exiftool, mais je pense que Yad nécessite certainement des critères supplémentaires (je n’ai pas cherché). Bref, il existe plusieurs façons de faire, mais comme je suis de nature plutôt fainéante, je préfère me baser sur des solutions déjà en place et qui fonctionnent chez moi depuis 2015.

Mais voyons la procédure

Tu auras besoin de Zenity et de Exiv2 (Chez-moi, Exiv2 était déjà installé). Pour installer les deux :
Manjaro :

sudo pacman -S exiv2 zenity

Débian et dérivés

sudo apt install exiv2 zenity

Sous XFCE il n’y a pas de ./local/thunar, on va donc créer un répertoire sous .local, je l’ai appelé bin, vous pouvez le nommer scripts ou autres, mais il faudra en tenir compte pour les chemins.

Créer un répertoire bin

mkdir -p ~/.local/bin

On va écrire le script, j’utilise vim, mais vous pouvez utiliser nano ou autre éditeur.

vim ~/.local/bin/exif.sh

et on y écrit :

#!/bin/bash

# métadonnées exif avec exiv2

zenity --info --title="Métadonnées EXIF" --text="$(exiv2 "$1")"

Un peu de pédagogie

#!/bin/bash est un préfixe au nom de l’exécutable qui va effectivement traiter les lignes qui le suivent. On l’appelle « shebang » et doit être la première ligne du script. (il s’agit d’un copié/collé de mon article « Initiation au Shell – Boucle (for, do, done » écrit en 2015).

zenity --info --title="Métadonnées EXIF" --text="$(exiv2 "$1")"

zenity affiche une boite de dialogue d’info (–info), titre optionnel (–title) et enfin avec (–text) le contenu de la sortie de la commande exiv2, les métadonnées exif de $1, le premier argument passé au script, c’est-à-dire le chemin du fichier image.

Il faut rendre exécutable le script

chmod +x ~/.local/bin/exif.sh

– Pas certain que ma pédagogie fasse mouche
– Ouah ah ah… Et c’est toi Sima qui donne des cours d’initiation au Bash à Root66.Net ? Hé ben, ils sont pas aidés.
– Ho ça va, ta gueu… Tais-toi ! Bon, je continue.

Voyons maintenant comment configurer Thunar

On ouvre le gestionnaire de fichier Thunar puis on va dans :
Édition → Configurer les actions personnalisées…

Une boite de dialogue s’ouvre → clique sur le +

Une autre boite de dialogue s’ouvre sur l’onglet « Base »
On met le nom de son choix.
On peut mettre une description.
Dans commande on met le chemin absolu (en entier) vers l’exécutable avec le paramètre %f

Ensuite on va dans l’onglet « Conditions d’apparition » et on coche la case « Fichiers image »

Puis on valide
On voit que l’action « EXIF » a été ajouté. Tu peux fermer.

Sur Thunar vas sur une image et fais un clic droit, puis descend sur « EXIF »

Clic sur « EXIF » et une fenêtre s’ouvre avec les métadonnées Exif.


Si ça ne fonctionne pas, ferme et relance Thunar pour être certain que les modifications ont bien été prises en compte par Thunar.

Des idées pour améliorer ce petit script ou une autre approche à proposer ? Lâche-toi en commentaires.

Le billet « Script – afficher les données Exif sur Thunar » est apparu en premier sur le blog de Sima78.

GnuPG Renouveler sa clé de chiffrement

Il était temps que je renouvelle ma clé de chiffrement, en effet je n’avais pas mis de date d’expiration et par procrastination dont je suis un spécialiste je reculais la date de cette tâche de jour en jour pour ne pas dire d’année en année. Ce week-end je m’y suis collé et c’est l’occasion de créer un billet pour blog.

Trouvant les interfaces graphiques limitées dans les options, j’ai utilisé la ligne commande bien plus riche.

Faut-il communiquer qu’en mode chiffré ou pas… ce sera le sujet d’un autre article !

Avant tout, qu’est-ce que GnuPG ?

GnuPG (GNU Privacy Guard) est un logiciel libre qui permet de chiffrer et de signer des données et des communications, rendant vos échanges privés et authentiques. Il utilise le chiffrement asymétrique : chaque utilisateur possède une clé publique (à partager pour recevoir des messages chiffrés) et une clé privée (à garder secrète pour déchiffrer les messages reçus et signer ses propres messages).

Bref :

  • Protéger vos emails et fichiers pour qu’ils ne soient lisibles que par le destinataire choisi.
  • Vérifier l’authenticité des messages ou fichiers reçus, confirmant qu’ils proviennent bien de la personne qui les a signés.

C’est un outil pour la confidentialité et la sécurité des communications numériques.

Avertissement

Il ne s’agit pas de copier/coller bêtement les lignes de commande mais d’essayer de les comprendre et de vous les approprier.
Comme modifier « mon@mail.fr » par votre mail… Et mettre votre propre ID

Pour comprendre comment est faite une clé GnuPG

pub   rsa4096/0x2C07D84901065A3D 2024-11-10 [SC]
      Empreinte de la clef = 32B2 C27E 1C7D 3D68 8FA1  D49F 2C07 D849 0106 5A3D
uid                              sima78 (clés perso 01) <mon@mail.fr>
sub   rsa4096/0x373FEA503684F9B2 2024-11-10 [E]

pub : est la clé publique, l’ID est entre le « / » et avant 2024, utilisée pour chiffrer ou vérifier des signatures.
Empreinte de la clé : est l’empreinte complète qui permet de faire des vérifications.
uid : Identité de l’utilisateur associée à la clé publique (nom, email).
sub : Clé secondaire, souvent utilisée pour des rôles spécifiques comme le chiffrement.

Renouvellement de la clé GnuPG

Je commence par lister les clés

gpg –list-key

Là je constate que j’ai une grande quantité de clés publiques expirées.
Faire le ménage et commencer par identifier les clés publiques expirées

Faire le ménage, supprimer les clés expirées est tout à fait optionnel. Vous pouvez le faire après, ou ne pas le faire.

La procédure de renouvellement commence vraiment à « Révoquer l’ancienne clé ».

gpg --list-keys --with-colons | awk -F: '/^pub:e:/ {print $5}'

Permets de lister les clés expirées
Pour les supprimer deux possibilités

Dans mes penses-bêtes j’ai un script et une ligne de commande. Je vous mets les deux mais j’ai utilisé la ligne de commande plus bas, je n’ai pas retesté mon script.
Mon script avec une structure conditionnelle « if, then, fi » et une boucle « for do done« 

#!/bin/bash
# Script de suppression des clés publiques GPG expirées
# Vérifier si la commande gpg est disponible
if ! command -v gpg &> /dev/null; then
    echo "Erreur : gpg n'est pas installé." >&2
    exit 1
fi

# Parcourir en boucle chaque clé GPG expirée et la supprimer
for key in $(gpg --list-keys --with-colons | awk -F: '/^pub:e:/ {print $5}'); do
    echo "Suppression d'une clé expirée: $key"
    gpg --batch --yes --delete-keys "$key" || {
        echo "Échec de la suppression de la clé: $key" >&2
    }
done

echo "La suppression des clés expirées est terminée."
exit 0

Ou en une ligne, ce que j’ai utilisé

gpg --list-keys --with-colons | awk -F: '/^pub:e:/ {print $5}' | xargs -I {} gpg --batch --yes --delete-keys {}
  • gpg –list-keys –with-colons : Liste toutes les clés
  • awk -F: ‘/^pub:e:/ {print $5}’ : Filtre les clés publiques expirées (pub:e) et extrait leur ID.
  • xargs -I {} gpg –batch –yes –delete-keys {} : Utilise xargs pour passer chaque ID de clé expirée à gpg –delete-keys, supprimant ainsi les clés sans confirmation.

Cette commande supprime toutes les clés publiques expirées de manière automatique.

Mettre à jour les clés de votre trousseau

Pour synchroniser toutes les clés dans votre trousseau avec le serveur de clés et obtenir les dernières informations (comme les révocations), utilisez :

gpg –refresh-keys

Cela vérifie chaque clé de votre trousseau et télécharge les mises à jour disponibles, y compris les certificats de révocation, de tous les serveurs de clés configurés.

Révoquer l’ancienne clé

sima78@jilipolla:~$ gpg --output revocation_certificat.asc --gen-revoke mon@mail.fr
gpg: 'mon@mail.fr' matches multiple secret keys:
gpg:   sec  rsa4096/0x2A5F500DD27DD6FB 2017-02-22 sima78 <mon@mail.fr>
gpg:   sec  dsa3072/0x038072C036D4F9CD 2015-09-21 Sima78 <mon@mail.fr>

Ah, j’ai deux ID dont une est déjà expirée, c’est dont la première que je dois choisir.

sima78@jilipolla:~$ gpg --output revocation_certificat.asc --gen-revoke 0x2A5F500DD27DD6FB

sec  rsa4096/0x2A5F500DD27DD6FB 2017-02-22 sima78 <mon@mail.fr>

Faut-il créer un certificat de révocation pour cette clef ? (o/N) o
choisissez la cause de la révocation :
  0 = Aucune cause indiquée
  1 = La clef a été compromise
  2 = La clef a été remplacée
  3 = La clef n'est plus utilisée
  Q = Annuler
(Vous devriez sûrement sélectionner 1 ici)
Quelle est votre décision ? 0

Entrez une description facultative, en terminant par une ligne vide :
> ancienne
>

Cause de révocation : Aucune cause indiquée
ancienne
Est-ce d'accord ? (o/N) o
sortie forcée avec armure ASCII.
Certificat de révocation créé.

Veuillez le déplacer sur un support que vous pouvez cacher ; toute personne
accédant à ce certificat peut l'utiliser pour rendre votre clef inutilisable.
Imprimer ce certificat et le stocker ailleurs est une bonne idée, au cas où le
support devienne illisible. Attention tout de même : le système d'impression
utilisé pourrait stocker ces données et les rendre accessibles à d'autres.

Importer le certificat de révocation

sima78@jilipolla:~$ gpg --import revocation_certificat.asc
gpg: clef 0x2A5F500DD27DD6FB : « sima78 <mon@mail.fr> » certificat de révocation importé
gpg: Quantité totale traitée : 1
gpg:    nouvelles révocations de clef : 1
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: profondeur : 0  valables :   1  signées :   0
     confiance : 0 i., 0 n.d., 0 j., 0 m., 0 t., 1 u.

Envoyer sur le serveur de clés la révocation

sima78@jilipolla:~$ gpg --send-keys --keyserver keys.openpgp.org 0x2A5F500DD27DD6FB
gpg: envoi de la clef 0x2A5F500DD27DD6FB à hkp://keys.openpgp.org

Générer la nouvelle clé

sima78@jilipolla:~$ gpg --full-generate-key
gpg (GnuPG) 2.4.4; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Sélectionnez le type de clef désiré :
   (1) RSA and RSA
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
   (9) ECC (sign and encrypt) *default*
  (10) ECC (signature seule)
  (14) Existing key from card
Quel est votre choix ? 1

les clefs RSA peuvent faire une taille comprise entre 1024 et 4096 bits.
Quelle taille de clef désirez-vous ? (3072) 4096
La taille demandée est 4096 bits

Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
         0 = la clef n'expire pas
      <n>  = la clef expire dans n jours
      <n>w = la clef expire dans n semaines
      <n>m = la clef expire dans n mois
      <n>y = la clef expire dans n ans
Pendant combien de temps la clef est-elle valable ? (0) 0
La clef n'expire pas du tout
Est-ce correct ? (o/N) o

GnuPG doit construire une identité pour identifier la clef.
Nom réel : sima78
Adresse électronique :  mon@mail.fr
Commentaire : clés perso 01
Vous utilisez le jeu de caractères « utf-8 ».
Vous avez sélectionné cette identité :
    « sima78 (clés perso 01) <smon@mail.fr > »
Changer le (N)om, le (C)ommentaire, l'(A)dresse électronique
ou (O)ui/(Q)uitter ? O

De nombreux octets aléatoires doivent être générés. Vous devriez faire
autre chose (taper au clavier, déplacer la souris, utiliser les disques)
pendant la génération de nombres premiers ; cela donne au générateur de
nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.
De nombreux octets aléatoires doivent être générés. Vous devriez faire
autre chose (taper au clavier, déplacer la souris, utiliser les disques)
pendant la génération de nombres premiers ; cela donne au générateur de
nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.

gpg: répertoire « /home/sima78/.gnupg/openpgp-revocs.d » créé
gpg: revocation certificate stored as '/home/sima78/.gnupg/openpgp-revocs.d/32B2C27E1C7D3D688FA1D49F2C07D84901065A3D.rev'
les clefs publique et secrète ont été créées et signées.

pub   rsa4096/0x2C07D84901065A3D 2024-11-10 [SC]
      Empreinte de la clef = 32B2 C27E 1C7D 3D68 8FA1  D49F 2C07 D849 0106 5A3D
uid                              sima78 (clés perso 01) <mon@mail.fr>
sub   rsa4096/0x373FEA503684F9B2 2024-11-10 [E]

On vérifie la liste des clés et note l’ID de la nouvelle clé
Une fois la nouvelle clé créée, listez vos clés pour noter l’ID de votre nouvelle clé :

gpg –list-keys

Exporter votre nouvelle clé publique

Exportez votre nouvelle clé publique pour la partager avec vos contacts :

sima78@jilipolla:~$ gpg --export --armor 0x2C07D84901065A3D > 2024-gnupg-sima78.asc

Publier la nouvelle clé publique sur un serveur de clés

Cela permet à vos contacts de retrouver votre nouvelle clé via un serveur de clés public, comme keys.openpgp.org. Il en existe plusieurs mais ils se synchronisent ente-eux

sima78@jilipolla:~$ gpg --send-keys --keyserver keys.openpgp.org 0x2C07D84901065A3D
gpg: envoi de la clef 0x2C07D84901065A3D à hkp://keys.openpgp.org

Il ne reste plus qu’à configurer les clients mail pour utiliser la nouvelle clé
Chaque client mail a des procédures spécifiques pour sélectionner une nouvelle clé GnuPG. Je ne vais donc pas détailler ici.

Récapitulatif des commandes que j’ai utilisées.

  • gpg –list-key
  • gpg –list-keys –with-colons | awk -F: ‘/^pub:e:/ {print $5}’
  • gpg –list-keys –with-colons | awk -F: ‘/^pub:e:/ {print $5}’ | xargs -I {} gpg –batch –yes –delete-keys {}
  • gpg –refresh-keys
  • gpg –output revocation_certificat.asc –gen-revoke mon@mail.fr
  • gpg –output revocation_certificat.asc –gen-revoke 0x2A5F500DD27DD6FB
  • gpg –full-generate-key
  • gpg –export –armor 0x2C07D84901065A3D > 2024-gnupg-sima78.asc
  • gpg –send-keys –keyserver keys.openpgp.org 0x2C07D84901065A3D

Les commandes 2, 3 et 4 sont optionnelles, j’avais juste besoin de faire du ménage.

Précisions, réflexion :
Il est fortement conseillé de créer un certificat de révocation de votre nouvelle clé que vous garderez précieusement dans vos sauvegardes. En effet, si pour une raison quelconque vous perdez votre paire de clés ou que votre clé est corrompue vous pourrez l’exporter pour révoquer votre clé et en recréer une nouvelle.
En écrivant cet article j’ai regardé ce que faisaient d’autres blogueurs, beaucoup commencent par générer la nouvelle clé et termine par la révocation de l’ancienne clé, c’est aussi une logique qui se tient.

Il existe de plus en plus de fournisseurs de messageries qui proposent la possibilité de chiffrement assymétrique de vos mails et signatures de façon simplifiée.

Pour aller plus loin
Gnu Privacy Guard (GnuPG) Mini Howto (Français)
Le manuel de GNU Privacy Guard (Français)

Vous pouvez vous lâcher dans les commentaires.

Le billet « GnuPG Renouveler sa clé de chiffrement » est apparu en premier sur le blog de Sima78.

Renommer vos videos par lot en utilisant les metadonnees

Pour renommer les fichiers MP4 par lot en utilisant les métadonnées

telles que la date et l’heure de création

J’ai écrit plusieurs articles exiv2 dont comment renommer vos photos par lot en utilisant les métadonnées Exif. Cela n’est pas transposable car exiv2 ne gère pas les métadonnées des fichiers vidéo MP4.

Alors comment faire ?
Je vois deux possibilités, il y en a certainement d’autres.

La première utilise exiftool, je parlerais plus bas de l’autre solution que je ne développerai pas.

Exiftool est un outil pour lire, écrire et éditer les métadonnées des fichiers multimédias, y compris les fichiers vidéo. Il faut donc commencer par l’installer si ce n’est pas déjà fait :

sudo apt install exiftool

En fonction de votre distribution vous adapterez.

AVERTISSEMENT !

  • Toujours avoir une sauvegarde des fichiers à modifier.
  • Comme nous allons utiliser également la commande « find », qui est récursive, mettre vos fichiers à modifier dans un répertoire sans sous-répertoire.

Voici la commande :

find . -iname "*.mp4" -exec exiftool '-filename<CreateDate' -d "%Y-%m%d-%Hh%Mm%Ss-Nom_de_votre_choix.mp4" {} +

Explication de la commande

find . -iname "*.mp4" : Trouve tous les fichiers avec l’extension .mp4 (avec -iname, peu importe la casse de mp4) soit dans le répertoire courant et ses sous-répertoires (d’où l’avertissement plus haut).
-exec exiftool '-filename<CreateDate' : Utilise exiftool pour renommer chaque fichier en utilisant la valeur de CreateDate.
-d "%Y-%m%d-%Hh%Mm%Ss-Nom_de_votre_choix.mp4" : Spécifie le format du nom de fichier de sortie. Ici, %Y, %m, %d, %Hh, %Mm, %Ss sont des formatages pour l’année, le mois, le jour, l’heure, la minute et la seconde de création, et Nom_de_votre_choix » est une chaîne fixe que vous pouvez modifier, bref, le nom que vous souhaitez donner
{} : Représente chaque fichier trouvé par find.
+ : Permet d’exécuter une seule commande exiftool pour tous les fichiers trouvés

Exemple concret

J’ai un répertoire « Work » dans lequel se trouve plusieurs sous-répertoires dont un qui s’appelle « vid »
J’ai mis une copie de mes vidéos à renommer dans le répertoire « vid »

Je me positionne sur le répertoire en question

cd Work/vid

Je vérifie :

ls
20240611_100113.mp4  20240611_104333.mp4  20240612_120842.mp4  20240612_154830.mp4
20240611_104308.mp4  20240611_144029.mp4  20240612_154728.mp4  20240612_204306.mp4
20240611_104323.mp4  20240612_120121.mp4  20240612_154803.mp4

Mes vidéos sont bien là et il n’y a pas de sous-répertoire.

On lance la commande :

find . -iname "*.mp4" -exec exiftool '-filename<CreateDate' -d "%Y-%m%d-%Hh%Mm%Ss-Nom_de_votre_choix.mp4" {} +
   11 image files updated

Vérification :

ls
2024-0611-08h01m52s-Nom_de_votre_choix.mp4  2024-0611-12h40m44s-Nom_de_votre_choix.mp4  2024-0612-13h48m16s-Nom_de_votre_choix.mp4
2024-0611-08h43m19s-Nom_de_votre_choix.mp4  2024-0612-10h01m35s-Nom_de_votre_choix.mp4  2024-0612-13h48m49s-Nom_de_votre_choix.mp4
2024-0611-08h43m28s-Nom_de_votre_choix.mp4  2024-0612-10h09m01s-Nom_de_votre_choix.mp4  2024-0612-18h43m10s-Nom_de_votre_choix.mp4
2024-0611-08h43m38s-Nom_de_votre_choix.mp4  2024-0612-13h47m42s-Nom_de_votre_choix.mp4

Pour que ce soit plus parlant on remplace Nom_de_votre_choix par Vacances

find . -iname "*.mp4" -exec exiftool '-filename<CreateDate' -d "%Y-%m%d-%Hh%Mm%Ss-Vacances.mp4" {} +
   11 image files updated
ls
2024-0611-08h01m52s-Vacances.mp4  2024-0611-08h43m38s-Vacances.mp4  2024-0612-10h09m01s-Vacances.mp4  2024-0612-13h48m49s-Vacances.mp4
2024-0611-08h43m19s-Vacances.mp4  2024-0611-12h40m44s-Vacances.mp4  2024-0612-13h47m42s-Vacances.mp4  2024-0612-18h43m10s-Vacances.mp4
2024-0611-08h43m28s-Vacances.mp4  2024-0612-10h01m35s-Vacances.mp4  2024-0612-13h48m16s-Vacances.mp4

C’est terminé !

Hé Sima, et la deuxième possibilité.
Ha oui, j’allais oublier.

J’avais pensé à utiliser ffmpeg ou plus précisément  ffprobe qui est inclus dans ffmpeg et permet d’extraire les métadonnées.

Mais j’avoue ne pas avoir trouvé comment le faire en une ligne.

Soit, dans un script c’est possible.

On extrait les métadonnées avec ffprobe, puis utiliser structure conditionnelle if else fi pour traiter/formater les données et renvoyer vers un find incluant  bash -c 'rename_file "$0"'

Bref, l’idée est là, un truc de ce genre, mais comme j’ai une ligne qui fait le job, je ne me suis pas creusé la tête pour créer un script.

Vous avez une d’autres idées en ligne de commande? des questions? n’hésitez pas à utiliser les commentaires.

Le bille « Renommer vos videos par lot en utilisant les metadonnees » est apparu en premier sur le blog de Sima78.

Tuto – Chiffrement GnuPG et messagerie Protonmail

Tuto – Chiffrement GnuPG et messagerie Protonmail

Je n’ai pas de messagerie Protonmail par contre j’utilise GnuPG pour signer et chiffrer mes mails et pièces jointes.

J’avais un souci pour récupérer les clés publiques de mes correspondants sous Protonmail. Je mets donc ici les problèmes rencontrés et leurs résolutions.

Si cela peut servir à d’autres, cela me servira de toute façon de pense-bête.

Problème de récupération des clés GnuPG publiques Protonmail.

adressemail@protonmail.com est une adresse fictive pour ne pas mettre ici l’adresse réellement recherché, c’est pour l’exemple hein !

Lorsque j’essaie de récupérer une clé publique GnuPG Protonmail j’ai le message d’erreur suivant :
Quelle que soit la commande :

gpg --search-keys adressemail@protonmail.com

ou :

gpg2 –recv-keys adressemail@protonmail.com

J’ai le message d’erreur suivant :

gpg: WARNING: Tor is not running

gpg: error searching keyserver: Connexion refusée

gpg: échec de recherche au sein du serveur de clefs : Connexion refusée

On voit déjà que j’ai un souci de connexion lié à la configuration de mon GnuPG

Je commence donc par corriger cela :
Dans /home/user/.gnupg/dirmngr.conf j’ai commenté la ligne « use-tor » et toujours dans

###+++--- GPGConf ---+++###

# use-tor

Dans /home/user/.gnupg/gpg.conf j’ai modifié (dans la partie « keyserver ») le serveur par défaut et commenté l’ancien :
Remplacé « keyserver hkp://keys.gnupg.net » par « keyserver hkps://keys.openpgp.org »

#-----------------------------

# keyserver

#-----------------------------

# This is the server that --recv-keys, --send-keys, and --search-keys will

# communicate with to receive keys from, send keys to, and search for keys on

# keyserver hkp://keys.gnupg.net

keyserver hkps://keys.openpgp.org/

Deuxième tentative de récupération de la clé publique.

gpg --search-keys adressemail@protonmail.com

Et toujours rien, il ne trouve pas la clé ?…
Je vais sur les serveurs de clés en ligne rien de plus…

Je me renseigne et on me dit que les clés publiques Protonmail ne sont pas sur les serveurs publics habituels mais voir les renseignements sur :
https://blog.prokop.dev/posts/gpg-retrieve-public-key-proton-mail/ (Merci Syst)

Dernière tentative après avoir les informations sur le lien ci-dessus :

Et tout fonctionne à nouveau correctement :

gpg --keyserver hkps://api.protonmail.ch --search-key adressemail@protonmail.com

gpg: data source: https://api.protonmail.ch:443

(1)    systd@protonmail.com <adressemail@protonmail.com>

      2048 bit RSA key 0x2AB4A510999264D7, créé : 2017-07-25

Keys 1-1 of 1 for "adressemail@protonmail.com".  Entrez le ou les nombres, (S)uivant, ou (Q)uitter > 1

gpg: clef 0x2AB4A510999264D7 : clef publique « adressemail@protonmail.com <adressemail@protonmail.com> » importée

gpg: Quantité totale traitée : 1

gpg:               importées : 1

Ensuite je n’ai plus qu’à signer la clé et lui donner un niveau de confiance.
Terminé !

PS : le numéro de la clé est faux aussi, c’est pour l’exemple.

Le billet Tuto – Chiffrement GnuPG et messagerie Protonmail est apparu en premier sur le blog de Sima78.

Tuto – Sur quel dev se trouve votre webcam

Tuto – Sur quel « dev » se trouve votre webcam

Et tester la webcam en ligne de commande.

Un petit tuto pense bête pour savoir sur quel « dev » se trouve votre webcam et la tester en migne de commande.

Système d’exploitation Linux, PC fixe avec une seule webcam connectée via USB.

Commande passé depuis un terminal en mode utilisateur « user »

Savoir si la webcam est reconnue sur l’un des ports usb.

$ lsusb
(...)
Bus 001 Device 004: ID 1d6c:0103 HD WEBCAM HD WEBCAM
(...)

Sur toute une série de lignes il y en a une où apparaît clairement la webcam, elle est donc reconnue.

Sur quel « /dev » elle se trouve :

$ ls -l /dev/video*
crw-rw----+ 1 root video 81, 0 mars   4 10:50 /dev/video0
crw-rw----+ 1 root video 81, 1 mars   4 10:50 /dev/video1

J’en trouve deux alors que je n’ai qu’une webcam ? J’en déduis que peut-être que ma carte mère est prévue pour être installée sur d’autres machines avec webcam intègrée, ou que je peux en installer deux sur ports usb… J’avoue ne pas avoir la réponse précise, juste déduction.

Pour tester la webcam en ligne de commande on va utiliser MPlayer.

Je n’ai rien inventé tout est dans le très riche « man »

$ man mplayer

Nous avons donc les « device » possibles « /dev/video0 » ou « /dev/video1 », reste à trouver le bon « driver », pour cela :

$ mplayer tv:// -tv driver=help
(...)
Available drivers:
 v4l2    Video 4 Linux 2 input (first try, more to come ;-))

On a le driver  v4l2

Faisons donc un premier test :

$ mplayer tv:// -tv driver=v4l2:device=/dev/video0

Normalement vous devez vous voir, si ça ne fonctionne pas tester donc avec /dev/video1
Il suffit de taper Quit pour quitter.

Vous pouvez aussi spécifier la taille de votre fenêtre mplayer. Par défaut c’est 640×480, on va spécifier une taille plus grande.

$ mplayer tv:// -tv driver=v4l2:device=/dev/video0:width=1280:height=800

Le billet Tuto – Sur quel « dev » se trouve votre webcam est apparu en premier sur le blog de Sima78.

Tuto – Convertir un fichier webm en gif avec ffmpeg

Logo ffmpeg, avr. 2022
Logo ffmpeg

Tuto – Convertir un fichier webm en gif avec ffmpeg

Petit tuto pense bête d’une ligne. J’avais besoin à tout prix d’un fichier gif depuis un fichier webm.
Attention, ce n’est pas forcément judicieux car là la conversion le fichier gif aura une moins bonne définition et va prendre du poids ; -)

La ligne de commande

ffmpeg -i source.webm -pix_fmt rgb24 destination.gif

Ce billet fait écho à celui de Tutox sur comment « Réduire le poids d’une vidéo avant de la publier sur le web » et que j’utilise assez souvent.

Le billet Tuto – Convertir un fichier webm en gif avec ffmpeg est apparu en premier chez Sima78.

Tuto – Erreur cron – root: not found

Tuto – Erreur cron – root: not found

Automatisation des tâches avec crontab

Voilà un message d’erreur qui arrive lorsque l’utilisateur root n’a pas de Shell.

# cat /var/log/backup-rdiff

/bin/sh: 1: root: not found

/bin/sh: 1: root: not found

Comment y remédier ?
Plutôt que de refaire un tutoriel sur ce billet, je vais compléter un billet existant qui traite aussi bien de Rdiff-backup, les tâches Cron et MySqlDump.

Donc pour la suite allez sur le billet :

Sauvegardes au quotidien – Rdiff-Backup et MySqlDump

Le billet Tuto – Erreur cron – root: not found sur le blog de Sima78.

Humeur – Initiation au Bash

bin-bash scripts ligne de commande, mai 2017
bin-bash scripts ligne de commande

Humeur – Initiation au Bash

Cela fait deux années de suite que je me propose pour donner des cours d’initiation à la ligne de commande. Elle se déroulait par visioconférence.

La prochaine commence demain et pour la première fois en présentiel.

Cela avait commencé lors du confinement, une idée pour que l’association garde une activité et des échanges entre adhérents malgré la pandémie. D’autres adhérents ont, pendant toute la pandémie proposés quelques conférences, Nous avions également organisé un Apéroot via visio où l’on pouvait parler de tout et de rien et cela depuis le serveur personnel d’un des adhérents.

Bref nous avons tous essayé tant bien que mal à maintenir une activité.

Donc l’initiation en présentiel commence demain !

Je m’interroge !

Sauf que je m’interroge, car si j’ai eu du monde sur les deux présentations précédentes, là ce n’est pas le cas… Un inscrit, et encore, pas certain qu’il puisse venir aux six séances. D’autres m’ont fait savoir qu’ils viendraient, peut-être ?…

Comme je l’ai dit, même s’il y a une personne je viens ! Ça fera un cours particulier, ça ne me dérange pas.

La difficulté en visio est de savoir où en est chacun : est-ce que tout le monde suit ?

Il y a ceux qui n’hésitent pas à poser des questions, il y a ceux qui par leurs silences, je ne sais pas s’ils suivent réellement ou s’ils n’osent pas poser de questions pour ne pas « ralentir » le cours.

Il y a ceux qui tapent la commande demandée et que me disent qu’elle ne fonctionne pas ! Faire de multiple partages d’écran est pénible, je dois donc deviner ce qui se passe sur son écran avec ce qu’il me dit pour trouver l’erreur commise.

Bref, même si ce n’était pas simple, j’ai vraiment apprécié faire ça et les bons retours m’ont fait plaisir. Ce qui n’empêche que je me pose la question sur les réels acquis. N’y en a-t-il pas qui n’ont pas osé s’exprimer et qui peut-être, largués, j’aurai dégoûté de la ligne de commande, ce qui serait le résultat inverse à celui souhaité ?

Pourtant ce nouveau format d’initiation me paraît bien plus efficace !

En effet, en présentiel plusieurs adhérents qui connaissent très bien la ligne de commande se sont proposés pour m’assister. Pendant que je fais la présentation ils pourront tourner pour voir, aider, répondre à des questions… Ce qui permettrait a chacun de mieux s’approprier la ligne de commande.

Oui mais Sima, tu as fait un peu de promo auprès des adhérents ?
J’ai essayé de vendre au mieux sur notre liste interne. Mais bon… exemple envoyé sur mes mails

(…)
Vous avez Linux que vous utilisez et aimez et vous avez entendu parler de « lignes de commande », de « terminal » qu’on appelle aussi « Shell », cet écran noir qui peut paraître austère.
Ça peut paraître compliqué, ça ne l’est pas… L’initiation est justement là pour vous familiariser avec le côté obscur de votre écran.
Vous apprendrez à mieux connaître l’arborescence de votre Linux, faire des recherches plus pointues qu’avec le mode graphique, et d’autres choses… Il n’y aura plus ou presque de secret ou mystère pour vous !
Sima78… Qui vous offre un voyage au C-Shell

(…)
Bonne soirée et désolé pour ce langage barbare… Mais avec l’initiation au bash, tout cela devient un peu plus clair 🙂
Inscrivez-vous, niveau totalement novice… lien en dessous.
Découvrez et avancez pas-à-pas avec les lignes de commandes… Vous serez comme Oscar Diggs, le magicien d’OZ, heu pardon, le magicien de votre OS (votre Linux).
Sima78… Dicton du moment : Avec Root66 devenez le magicien d’OS.

Alors pourquoi si peu d’inscrits ?

Le créneau horaire, le seul que nous ayons eu (18 à 19h30), n’est pas simple pour ceux qui rentrent du travail et doivent ensuite se rendre à la formation, pas assez de temps, et ceux qui habitent vraiment loin, pas évident de prendre (train, plus bus), plus de temps passé dans les transports qu’à la formation).

Conclusion

Je peux avoir une bonne surprise et qu’il y ait plein de monde malgré les inscriptions « informelles », mais je n’y crois pas. Il y aura peu de gens, voire personne. S’il y en a peu, même qu’une seule personne je donnerai le cours.

Par contre il faudra une réflexion et faire un sondage pour voir si une deuxième session cet hiver en faisant un mixe présentiel et visio… Bref, discussion en interne pour savoir comment continuer ou pas… Les décisions sont collectives.

L’annonce est là : Initiation à la ligne de commande

Le billet Humeur – Initiation au Bash est apparu en premier sur le blog Sima78.

Tuto – pivoter une video avec ffmpeg

Logo ffmpeg, avr. 2022
Logo ffmpeg

Tuto – pivoter une vidéo avec ffmpeg.

Dernièrement en retour de vacances j’avais besoin de pivoter un vidéo prise via mon smartphone.

Comme je n’utilise pas souvent ffmpeg et que j’en ai marre de devoir chercher à chaque fois, je me mets ça ici, et si ça peut servir à d’autres tant mieux.

Pivoter une vidéo

0 = 90° – retournement vertical et dans le sens contraire des aiguilles d’une montre (effet miroir vertical).

ffmpeg -i vid-001.mp4 -vf transpose=0 vid-002.mp4

1 = 90° – dans le sens des aiguilles d’une montre.

ffmpeg -i vid-001.mp4 -vf transpose=1 vid-002.mp4

2 = 90° – dans le sens inverse des aiguilles d’une montre.

ffmpeg -i vid-001.mp4 -vf transpose=2 vid-002.mp4

3 = 90° – retournement vertical et dans le sens des aiguilles d’une montre (effet miroir vertical).

ffmpeg -i vid-001.mp4 -vf transpose=3 vid-002.mp4

Pour 180°

ffmpeg -i vid-001.mp4 -vf transpose=2,transpose=2  vid-002.mp4

ou

ffmpeg -i vid-001.mp4 -vf transpose=1,transpose=1  vid-002.mp4

Bien entendu pour aller plus loin il y a le man.

man ffmpeg

Ce billet fait écho à celui de Tutox sur comment « Réduire le poids d’une vidéo avant de la publier sur le web » et que j’utilise assez souvent.

Le billet Tuto – pivoter une vidéo avec ffmpeg est apparu en premier chez Sima78.

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…