Bonjour
Je chiffre mes partitions système et données, ce qui me donne une certaine latitude pour y enregistrer des fichiers confidentiels, en particulier mon mot de passe de connexion, sans que cela ne représente, à mon huméle avis, une faille trop importante de sécurité.
J'ai écrit un script "sudo" dans ~/bin, ainsi exécuté en priorité sur la commande sudo.
#! /bin/bash
############################################################################
# Sudo avec éventuelle mémorisation puis lecture du mot de passe sur un fichier
##############################################################################
shopt -s expand_aliases
[ -x ~/.bash_aliases ] && source ~/.bash_aliases;
function sudo () {
# paramètres pour le dialogue de saisie du mot de passe par zenity
local ai_titre="Authentification nécessaire"
local ai_ivc="Arrêt"
local ai_acc="Continuer"
# fichier de mémorisation du mot de passe, non chiffré
local ai_fmp=${AI_FMP:-~/.lathraios}
local ai_sudo="$(whereis -b sudo | cut -d " " -f 2)"
local tmpf=$(tempfile -m 660 -p ap_mp) && touch "${tmpf}" ;
# programme de saisie du mot de passe, appelé par la variable d'environnement SUDO_ASKPASS de sudo
local ask=$(tempfile -m 777 -p ap_su -s .sh) ;
local ai_nbp="${#}"
# enregistrement du programme de saisie du mot de passe dans le fichier $ask et d'affichage sur /dev/stdout
cat 1>"${ask}" <<AUIE
#! /bin/bash
touch "${ai_fmp}" ;
[ -s "${ai_fmp}" ] && cat "${ai_fmp}" || { zenity --password --title="${ai_titre}" --ok-label="${ai_acc}" --cancel-label="${ai_ivc}" 1>"${tmpf}" && chmod =400 "${tmpf}" && cat "${tmpf}"|| cat /dev/null ; } ;
AUIE
chmod u+x "${ask}" ;
valid=true ;
env SUDO_ASKPASS="${ask}" ${ai_sudo} -Av || valid=false ;
# mémorisation du mot de passe correct dans le fichier $ai_fmp
${valid} && ! [ -s "${ai_fmp}" ] && mv -T "${tmpf}" "${ai_fmp}" ;
rm "${tmpf}" "${ask}"
! ${valid} && return 1 ;
# exécution de la commande passée en paramètre à sudo
[ $((${ai_nbp})) -eq 0 ] || ${ai_sudo} "${@}"
}
sudo "${@}";
Comme on peut le voir, le dialogue utilisateur est géré par zenity.
L'adresse du mot de passe peut être passée dans la variable d'environnement AI_FMP, qui. par défaut, est le fichier ~/.lathraios (va savoir pourquoi ?). Le mot de passe est mémorisé en clair dans ce fichier, qui peut bien évidemment être dans /tmp, éventuellement en mémoire, ce qui le fait disparaître à chaque arrêt du PC.
Je constate à la relecture que je lis mon fichier d'alias, mais il me semble que je n'en utilise aucun, ce qui permet de supprimer les lignes qui précèdent la fonction.
Dis-moi si cela répond en quelque chose à ta demande.
Arbiel