Salut,
Ta clef qui se monte automatiquement doit se monter toujours au même endroit, dans /media/$USER/répertoire-de-la-clef. Ce « répertoire-de-la-clef » a un nom bâti à partir des infos dont le système dispose sur le système de fichiers présent sur ta clef. Par exemple, si tu l'as formatée en mettant un label au système de fichiers, le nom du répertoire sera le label, sinon ça sera l'uuid (je crois). Mais à la limite, peu importe : ce qui compte, c'est que ça sera toujours le même nom tant que tu n'auras pas reformaté ta clef, donc tu peux utiliser ce nom dans ton script.
Pour le mot de passe, c'est assez vilain de le mettre en dur dans le script, car un script doit nécessairement être accessible en lecture pour pouvoir être exécuté (car en fait il n'est pas directement exécuté, mais interprété, et pour cela il faut que l'interpréteur puisse le lire). Il existe néanmoins une bidouille qui permet de restreindre les droits en lecture à l'utilisateur root, tout en accordant les droits d'exécution aux simples utilisateurs. Je la mentionne au cas où elle t'inspirerait :
https://forum.ubuntu-fr.org/viewtopic.php?pid=22110008
Si tu choisis cette voie, il te faudra utiliser l'option -P de la commande zip. En reprenant la commande donnée plus haut, ça donnerait :
zip -P mot-de-passe -rFS nom-archive répertoire-à-archiver
Sinon, une possibilité est d'utiliser le gestionnaire de mots de passe d'Ubuntu. Il faut d'abord que tu installes l'utilitaire secret-tool, par
sudo apt install libsecret-tools
Ensuite, tu stockes ton mot de passe d'archivage par la commande
secret-tool store --label="mon-label" clef valeur
où « mon-label » est ce que tu veux (par exemple « mot de passe archive »), et le couple clef-valeur également (par exemple utilisateur-moi ou type-archive). Quand tu valideras cette commande, elle te demandera le mot de passe à stocker, et c'est ensuite le couple clef-valeur qui te permettra de retrouver ce mot de passe, par
secret-tool lookup clef valeur
Finalement, tu pourras donc donner le mot de passe d'archivage à la commande zip dans ton script par
zip -P "$(secret-tool lookup clef valeur)" -rFS nom-archive répertoire-à-archiver
Il reste à préciser que le trousseau de clefs dans lequel tu vas stocker ton mot de passe d'archivage peut ou non être lui-même protégé par mot de passe. Par défaut, il l'est, et pour qu'il ne le soit pas, il faut laisser le champ du mot de passe vide lors de sa création (les mots de passe qu'il contient sont alors stockés en clair, évidemment, mais au moins ton mot de passe d'archivage ne sera-t-il pas directement dans le script). Tu peux faire des essais de création de trousseaux avec l'application Seahorse (qui doit être installée par défaut sur ton système).
Il faut également savoir que lorsque tu utiliseras la commande « secret-tool store » ci-dessus, elle stockera le mot de passe dans le trousseau de clefs étiqueté « par défaut » (là aussi, c'est une propriété qui est éditable dans Seahorse, par clic droit sur les trousseaux). Par contre, lorsque tu iras récupérer le mot de passe par la commande « secret-tool lookup », elle ira inspecter tous les trousseaux pour voir si elle y trouve le couple clef-valeur. Tu peux donc faire passer un trousseau particulier en « par défaut » le temps du stockage, puis remettre ton trousseau principal en « par défaut » si tu en as déjà un. Cette manip peut par exemple permettre de stocker en clair, dans un trousseau dédié, uniquement le mot de passe d'archivage, en laissant tous tes autres mots de passe chiffrés dans le trousseau principal.
Voilà ce vers quoi je pencherais dans un premier temps, si on veut en rester à zip aussi bien pour l'archivage que pour le chiffrement, et sans rentrer le mot de passe d'archivage en interactif. Mais si tu peux rentrer ce mot de passe toi-même, ce serait quand même le mieux niveau sécurité, comme le dit la doc : «
Whenever possible, use the non-echoing, interactive prompt to enter passwords. »
---
EDIT : un ajout concernant les trousseaux. Normalement, tu dois avoir un trousseau nommé « Connexion », protégé par le même mot de passe que ton mot de passe de connexion à Ubuntu, et qui se déverrouille automatiquement à l'ouverture de la session utilisateur. Si tu fais passer ce trousseau en « par défaut » dans Seahorse (s'il ne l'est pas déjà), secret-tool ira stocker et chercher le mot de passe d'archivage dedans sans te demander le mot de passe de déverrouillage du trousseau, tout en laissant ton mot de passe d'archivage chiffré à la fermeture de la session (et donc à l'extinction de l'ordi). Utiliser ce trousseau est donc probablement la meilleure solution.