From 39a90c8245e6e935c8a609fe703b029be47bec9b Mon Sep 17 00:00:00 2001 From: Fabrice Mouhartem Date: Sat, 24 Feb 2024 19:01:21 +0100 Subject: [PATCH] Add `PASSWORD_STORE_CHARACTER_SET` in pass description --- content/software/pass-fr.md | 24 +++++++++++++++++++++++- content/software/pass.md | 25 +++++++++++++++++++++++-- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/content/software/pass-fr.md b/content/software/pass-fr.md index 935b13a..ce10f4b 100644 --- a/content/software/pass-fr.md +++ b/content/software/pass-fr.md @@ -1,7 +1,7 @@ --- Title: Gérer vos mots de passe avec pass Date: 2019-04-22 19:00 -Modified: 2019-04-24 11:12 +Modified: 2024-02-24 18:00 Lang: fr Author: Fabrice Category: programmes @@ -32,6 +32,28 @@ Pour **re**générer un mot de passe, l’option `-i` ici est **importante** pui Cela évite donc de devoir utiliser du [git sale]({filename}/cheat-sheets/git-fr.md) pour retirer l’erreur de l’arbre des commits vu que `pass ` fait automatiquement un commit atomique à la fin de la commande. Je l’oublie parfois, c’est pourquoi je laisse ça ici en guise de rappel. +Sur certains services, il arrive que l’on ait besoin de spécifier un ensemble de caractères admissibles pour les mots de passe. +Cela peut être fait via la variable d’environnement `PASSWORD_STORE_CHARACTER_SET`. +Le contenu de cette variable est transmis à la [commande `tr`](https://fr.wikipedia.org/wiki/Tr_(Unix)). +Ainsi, pour créer un code PIN, on peut spécifier la valeur suivante : `PASSWORD_STORE_CHARACTER_SET='[:digit:]'` et indiquer la longueur désirée du mot de passe en dernier argument de la commande. + +Par exemple, pour générer un code PIN de 6 chiffres : + +```sh +PASSWORD_STORE_CHARACTER_SET='[:digit:]' pass generate 6 +``` + +Je n’ai en revanche pas trouvé comment forcer la présence de caractères spéciaux… je lance donc la commande plusieurs fois dans ces cas avec l’option `-i` pour écrire en place après la première tentative. +Ce n’est pas la meilleure solution, qui en plus pollue l’historique git mais bon… ça fonctionne. + +Par exemple, pour générer un mot de passe sur un service _fictif_ qui supporterait les caractères spéciaux suivants: `-_@$<>` pour des mots de passe d’au plus 20 caractères, on peut utiliser la commande suivante : + +```sh +PASSWORD_STORE_CHARACTER_SET='[:alnum:]-_@$<>' pass generate 20 +``` + +Pour finir : + ```sh pass git ``` diff --git a/content/software/pass.md b/content/software/pass.md index 80cea79..4cf913c 100644 --- a/content/software/pass.md +++ b/content/software/pass.md @@ -1,7 +1,7 @@ --- Title: Manage your passwords with pass Date: 2019-04-22 19:00 -Modified: 2019-04-23 14:24 +Modified: 2024-02-24 18:00 Author: Fabrice Category: software Tags: pass, git, cli @@ -28,7 +28,28 @@ Here are just some commands I often use. ```sh pass generate -i ``` -To regenerate a password, the `-i` is important to avoid overwritting the whole file and having to rely on [dirty git]({filename}/cheat-sheets/git.md) to withdraw your mistake (`pass ` will automatically commit your change)… I sometimes forget it, so let's put it here as a reminder. +To regenerate a password, the `-i` is important to avoid overwriting the whole file and having to rely on [dirty git]({filename}/cheat-sheets/git.md) to withdraw your mistake (`pass ` will automatically commit your change)… I sometimes forget it, so let's put it here as a reminder. + +Sometimes it can be useful to specify the accepted special chars, this can be done using the `PASSWORD_STORE_CHARACTER_SET` environment variable. +This value is interpreted by the [`tr` command](https://en.wikipedia.org/wiki/Tr_(Unix)), +hence to create a PIN, you can use the following value: `PASSWORD_STORE_CHARACTER_SET='[:digit:]'`, then specify the length with the last argument. + +For instance, to generate a 6 digit PIN: + +```sh +PASSWORD_STORE_CHARACTER_SET='[:digit:]' pass generate 6 +``` + +I didn’t manage to specify how to have at least one of them, so I run the command multiple times (with the `-i` option to change the file in place after the first one)… +It pollutes a bit the git history but, well… it works. + +For instance, for a service supporting only the following characters: `-_@$<>` of at most 20 char long (fictive example), you can use the following command: + +```sh +PASSWORD_STORE_CHARACTER_SET='[:alnum:]-_@$<>' pass generate 20 +``` + +To finish: ```sh pass git