nouvelle version du gestionnaire de mots de passes chiffrs sur vert, avec
de la couleur et tout plein d'autres trucs j'ai mis un machin pour faire la compltion ces scripts marchent bien si vous avec des cls ssh avec vert, dans le cas contraire j'ose pas tester... il doit demander le mot de passe dans tous les sens. Pour info on peut utiliser les commandes suivantes : cranspasswords : identique au prcedent cranspasswords --remove mailman : supprime le mot de passe mailman sur vert cranspasswords --edit mailman : edite le fichier mailman cranspasswords --view mailman : affiche le fichier de mailman cranspasswords --re-encrypt-all : rechiffre tous les mots de passe (changements de nounou) cranspasswords --list : refile la liste des fichiers chiffrs cranspasswords mailman : identique cranspasswords --view mailman Les options --remove --edit --view peuvent tre donnes sans nom de fichier, dans ce cas le script donne la liste NB : j'ai mis tout ce dans le cvs pour que ce soit plus central que dans mon home, et comme je savait pas ou le mettre, je l'ai mis dans un nouveau dossier darcs-hash:20060313214622-4ec08-4ff30473667ef60489a8f2f082a442df3f23db58.gz
This commit is contained in:
parent
db226a96e1
commit
6604677322
2 changed files with 147 additions and 0 deletions
134
utils/cranspasswords
Executable file
134
utils/cranspasswords
Executable file
|
@ -0,0 +1,134 @@
|
|||
#! /bin/sh
|
||||
|
||||
##############################################################################
|
||||
# variables générales
|
||||
|
||||
SRV=vert.adm.crans.org
|
||||
REP=/root
|
||||
TMP=`tempfile -m 600`
|
||||
trap "rm -f ${TMP}" EXIT
|
||||
|
||||
##############################################################################
|
||||
# parsage des arguments
|
||||
|
||||
if [[ -z "$1" ]] ; then
|
||||
ACTION="--view"
|
||||
CHOIX=""
|
||||
elif echo $1 | grep -q '^--' ; then
|
||||
ACTION=$1
|
||||
CHOIX=$2
|
||||
else
|
||||
ACTION='--view'
|
||||
CHOIX=$1
|
||||
fi
|
||||
|
||||
##############################################################################
|
||||
# fonctions utiles
|
||||
|
||||
function liste () {
|
||||
# donne la liste des mot de passe
|
||||
echo -e "\033[1;34mListe des mot de passe disponibles :\033[1;0m" >&2
|
||||
ssh ${SRV} "ls ${REP} | grep -e '.asc$' | sed 's/\.asc$//g' | sed 's/^/ /g'" 2> /dev/null
|
||||
}
|
||||
|
||||
function choix () {
|
||||
# choix du fichier
|
||||
if [[ -z "$CHOIX" ]] ; then
|
||||
liste
|
||||
echo
|
||||
echo -e -n "\033[1;34mChoix : \033[1;0m"
|
||||
read CHOIX
|
||||
else
|
||||
echo -e "\033[1;34mChoix :\033[1;0m $CHOIX"
|
||||
fi
|
||||
echo
|
||||
}
|
||||
|
||||
function dechiffre () {
|
||||
# récupère le mot de passe $CHOIX, le déchiffre et le colle dans $TMP
|
||||
# ${TMP} sera vide si les pass n'existe pas
|
||||
echo -e "\033[1;34mConnection à ${SRV}\033[1;0m"
|
||||
ssh ${SRV} -t "sudo -p 'Mot de passe sudo : ' echo -n" 2> /dev/null
|
||||
echo
|
||||
echo -e "\033[1;34mRécupération du fichier et déchifrage\033[1;0m"
|
||||
ssh ${SRV} "sudo cat ${REP}/$CHOIX.asc 2> /dev/null" | gpg --decrypt 2> /dev/null > ${TMP}
|
||||
echo
|
||||
}
|
||||
|
||||
function chiffre () {
|
||||
# chiffre les fichier $TMP et les colle dans le fichier $CHOIX
|
||||
echo -e "\033[1;34mChiffrage et envoi sur ${SRV}\033[1;0m"
|
||||
if [[ ! -s ${TMP} ]] ; then
|
||||
echo -e "\033[1;31mFichier vide, bandon...\033[1;0m"
|
||||
exit 1
|
||||
fi
|
||||
gpg --armor --encrypt --output - \
|
||||
--recipient Stephane.Glondu@crans.org \
|
||||
--recipient pauget@crans.org \
|
||||
--recipient dubost@crans.org \
|
||||
--recipient etienne.chove@crans.org \
|
||||
--recipient xavier.pessoles@crans.org \
|
||||
--recipient Vincent.Bernat@crans.org \
|
||||
--recipient Nicolas.Stransky@crans.org \
|
||||
--recipient mathieu.segaud@crans.org \
|
||||
--recipient salles@crans.org \
|
||||
${TMP} | ssh ${SRV} "sudo sh -c \"cat > ${REP}/${CHOIX}.asc\""
|
||||
}
|
||||
|
||||
function edite () {
|
||||
# édite le fichier temporaire
|
||||
$EDITOR ${TMP}
|
||||
}
|
||||
|
||||
function voir () {
|
||||
# affiche le contenu du fichier temporaire
|
||||
echo -e "\033[1;34mAffichage du fichier\033[1;0m"
|
||||
less ${TMP}
|
||||
}
|
||||
|
||||
function supprime () {
|
||||
# supprime un fichier
|
||||
echo -e "\033[1;34mSuppression du fichier chiffré : \033[1;0m${CHOIX}"
|
||||
CONFIRM="oui je suis sur"
|
||||
echo -n "Tappez \"$CONFIRM\" :"
|
||||
read CONFIRM2
|
||||
echo
|
||||
if [[ "${CONFIRM}" == "${CONFIRM2}" ]] ; then
|
||||
echo -e "\033[1;34mConnection à ${SRV}\033[1;0m"
|
||||
ssh ${SRV} -t "sudo -p 'Mot de passe sudo : ' echo -n" 2> /dev/null
|
||||
echo
|
||||
echo -e "\033[1;34mSuppression du fichier\033[1;0m"
|
||||
ssh ${SRV} "sudo rm -f ${REP}/$CHOIX.asc 2> /dev/null"
|
||||
echo -e "\033[1;32mFichié supprimé...\033[1;0m"
|
||||
else
|
||||
echo -e "\033[1;31mAbandon...\033[1;0m"
|
||||
fi
|
||||
}
|
||||
|
||||
##############################################################################
|
||||
|
||||
if [[ "$ACTION" == "--re-encrypt-all" ]] ; then
|
||||
for CHOIX in `liste 2> /dev/null` ; do
|
||||
echo -e "\033[1;33mTraitement de : \033[1;0m${CHOIX}"
|
||||
echo
|
||||
dechiffre
|
||||
chiffre
|
||||
echo
|
||||
done
|
||||
elif [[ "$ACTION" == "--edit" ]] ; then
|
||||
choix
|
||||
dechiffre
|
||||
edite
|
||||
chiffre
|
||||
elif [[ "$ACTION" == "--remove" ]] ; then
|
||||
choix
|
||||
supprime
|
||||
elif [[ "$ACTION" == "--view" ]] ; then
|
||||
choix
|
||||
dechiffre
|
||||
voir
|
||||
elif [[ "$ACTION" == "--list" ]] ; then
|
||||
liste 2> /dev/null | cut -b 5-
|
||||
else
|
||||
echo "Usage : cranspasswords [--re-encrypt-all|--edit|--remove|--view|--list] [FICHIER]"
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue