2017-06-06 02:43:07 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
2017-06-08 11:26:11 +02:00
|
|
|
version="0.7.1rc"
|
2017-06-07 01:04:05 +02:00
|
|
|
projet="A définir"
|
|
|
|
contact="A venir"
|
2017-06-06 20:04:42 +02:00
|
|
|
|
|
|
|
##### licence LPRAB/WTFPL
|
|
|
|
# auteur kyodev
|
|
|
|
# contibuteurs naguam / coyotus / arpinux
|
|
|
|
# 06/2017
|
2017-06-06 02:43:07 +02:00
|
|
|
#####
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#### définition couleurs -----------------------------------------------
|
|
|
|
YELLOW=`printf "\033[0;33m"` # ?
|
|
|
|
GREEN=`printf "\033[0;32m"` # ok
|
|
|
|
BLUE=`printf "\033[0;34m"` # info
|
|
|
|
COLOR=`printf "\033[0m"` # standard
|
|
|
|
RED=`printf "\033[0;31m"` # alerte
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#### entete ============================================================
|
2017-06-06 02:43:07 +02:00
|
|
|
clear
|
2017-06-06 20:04:42 +02:00
|
|
|
echo "$BLUE"
|
|
|
|
cat << 'EOF'
|
2017-06-06 02:43:07 +02:00
|
|
|
_ _____ _ _ ____ _
|
|
|
|
__ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __
|
|
|
|
/ _' |/ _ \ __| |_ | |/ _' / __| '_ \| |_) | |/ _' | | | |/ _ \ '__|
|
|
|
|
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
|
|
|
|
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|
|
|
|
|___/ |___/
|
|
|
|
EOF
|
2017-06-06 20:04:42 +02:00
|
|
|
echo -e "$YELLOW pour Firefox sur Debian, \t version $version\n$COLOR"
|
2017-06-06 02:43:07 +02:00
|
|
|
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#### fonctions diverses ================================================
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# sortie sur erreur
|
|
|
|
f_error() { # affichage paramètre 1 en rouge pour le premier, les suivants optionnels en bleu
|
|
|
|
echo -e "\n$RED Erreur critique: $1 $COLOR"
|
|
|
|
for (( i=2 ; i<=$# ; i++ )); do echo " $BLUE${!i}"; done
|
|
|
|
echo "$COLOR"
|
|
|
|
exit 1
|
2017-06-06 02:43:07 +02:00
|
|
|
}
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# affichage information
|
|
|
|
f_info() { # tous les paramètres en ligne en couleur bleue, accepte \n, ligne vide à la fin
|
|
|
|
echo -e " $BLUE $@ $COLOR\n"
|
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#debian? return 0 else 1
|
|
|
|
f_debian(){
|
|
|
|
if [ -f /etc/debian_version ]; then
|
|
|
|
return 0
|
|
|
|
else
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# root? return 0 else 1
|
|
|
|
f_root(){
|
|
|
|
if [ $EUID -eq 0 ]; then
|
|
|
|
return 0
|
|
|
|
else
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# liste des users déclarés dans le système, assigne $listeUsers
|
|
|
|
f_allUsers(){
|
|
|
|
# valeurs séparées par espace
|
|
|
|
listeUsers=$(cat /etc/passwd | sed -En 's/^(.*):x:[0-9]{4}.*$/\1/p' | grep -v 'nobody' | tr '\n' ' ')
|
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# version Flash en ligne, assign $verFlash, assigne $user_agent , $urlOnline , $verFlash
|
|
|
|
f_versionFlash(){
|
|
|
|
user_agent="Mozilla/5.0 (X11; Linux $architecture; rv:45.0) Gecko/20100101 Firefox/52.0"
|
|
|
|
urlOnline="https://get.adobe.com/flashplayer/"
|
|
|
|
verFlash=$(wget --no-check-certificate --tries=1 --timeout=15 --user-agent=$user_agent -nv -qO - $urlOnline | \
|
|
|
|
grep "AUTO_ID_columnleft_p_version" | grep -o '[0-9].*[0-9]')
|
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# pas bô ce soft :( ================================================
|
|
|
|
f_avertissement(){
|
|
|
|
cat << 'EOF'
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
FlashPlayer n'est pas libre, c'est un programmme propriétaire dont on
|
|
|
|
ne peut pas connaître le code source, ni l'utiliser sans conditions,
|
|
|
|
ni le distribuer librement.
|
|
|
|
Il souffre de nombreuses vulnérabilités chroniques, depuis des années
|
|
|
|
sans que l'éditeur fasse beaucoup d'efforts pour corriger cet état
|
|
|
|
de fait...
|
|
|
|
Il sera donc bloqué à plus ou moins court terme pas les navigateurs
|
|
|
|
majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela...
|
2017-06-06 02:43:07 +02:00
|
|
|
|
|
|
|
EOF
|
2017-06-06 20:04:42 +02:00
|
|
|
}
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#### traitements arguments =============================================
|
|
|
|
if [ "$#" -gt 1 ]; then cmd="help" && f_info "$RED trop d'arguments"
|
|
|
|
elif [ "$1" == "install" ]; then cmd="install"
|
2017-06-07 03:12:35 +02:00
|
|
|
elif [ "$1" == "remove" ]; then cmd="remove"
|
|
|
|
elif [ "$1" == "version" ]; then cmd="version"
|
|
|
|
elif [ "$1" == "test" ]; then cmd="installTest"
|
|
|
|
elif [ "$1" == "sysinstall" ]; then cmd="sysinstall"
|
|
|
|
elif [ "$1" == "sysremove" ]; then cmd="sysremove"
|
2017-06-06 20:04:42 +02:00
|
|
|
else cmd="help"
|
|
|
|
fi
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
if [ "$cmd" == "help" ]; then
|
|
|
|
# HELP si pas d'arguments ou mauvais argument
|
|
|
|
echo "$BLUE"
|
|
|
|
cat << 'EOF'
|
2017-06-07 03:12:35 +02:00
|
|
|
-----------------------------------------------------------------------
|
|
|
|
getFlashPlayer install : téléchargement et installation de FlashPlayer
|
|
|
|
getFlashPlayer remove : désinstallation de FlashPlayer
|
|
|
|
getFlashPlayer version : récupération version en ligne de FlashPlayer
|
2017-06-06 20:04:42 +02:00
|
|
|
getFlashPlayer test : installation version de test alternative
|
2017-06-07 03:12:35 +02:00
|
|
|
getFlashPlayer sysinstall : installation du script dans le système
|
|
|
|
getFlashPlayer sysremove : désinstallation du script dans le système
|
2017-06-06 20:04:42 +02:00
|
|
|
|
|
|
|
ce script agit sur TOUS les utilisateurs déclarés du système
|
2017-06-07 03:12:35 +02:00
|
|
|
-----------------------------------------------------------------------
|
2017-06-06 20:04:42 +02:00
|
|
|
EOF
|
|
|
|
echo $COLOR
|
|
|
|
cat << 'EOF'
|
|
|
|
Ce script doit être exécuté avec les droits administrateur root
|
2017-06-07 03:12:35 +02:00
|
|
|
uniquement pour les installations et la suppresion du script dans
|
|
|
|
le système.
|
2017-06-06 20:04:42 +02:00
|
|
|
Il désinstallera le paquet flashplugin-nonfree si présent.
|
|
|
|
Seul le plugin sera installé, en tant que plugin Mozilla Firefox.
|
2017-06-07 03:12:35 +02:00
|
|
|
Ce script devrait fonctionner sur Ubuntu.
|
|
|
|
-----------------------------------------------------------------------
|
2017-06-06 20:04:42 +02:00
|
|
|
EOF
|
|
|
|
f_avertissement
|
2017-06-06 02:43:07 +02:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#### fonction version en ligne =========================================
|
|
|
|
if [ "$cmd" == "version" ]; then
|
|
|
|
f_versionFlash
|
|
|
|
# fin de script
|
|
|
|
f_info "Version FlashPlayer en ligne: $verFlash."
|
|
|
|
exit 0
|
|
|
|
fi
|
2017-06-06 02:43:07 +02:00
|
|
|
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#### remove, on vire flash =============================================
|
|
|
|
if [ "$cmd" == "remove" ]; then
|
2017-06-06 02:43:07 +02:00
|
|
|
# on récupère la liste des users dans $listeUsers
|
|
|
|
f_allUsers
|
|
|
|
|
|
|
|
# on efface, pour *chaque user déclaré* sur le système
|
|
|
|
for user in $listeUsers; do
|
2017-06-06 03:10:44 +02:00
|
|
|
rm -f /home/"$user"/.mozilla/plugins/libflashplayer.*
|
2017-06-06 02:43:07 +02:00
|
|
|
done
|
2017-06-07 01:04:05 +02:00
|
|
|
rm -d /home/"$user"/.mozilla/plugins/ &>/dev/null
|
2017-06-06 20:04:42 +02:00
|
|
|
f_info "$GREEN""FlashPlayer est désinstallé pour tous les utlisateurs.\n"
|
|
|
|
# fin de script
|
2017-06-06 02:43:07 +02:00
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
2017-06-07 03:12:35 +02:00
|
|
|
#### système install ===================================================
|
|
|
|
if [ "$cmd" == "sysinstall" ]; then
|
|
|
|
# root? sinon dehors
|
|
|
|
if ! f_root ; then f_error "vous devez être ROOT pour installer ce script dans le système"; fi
|
|
|
|
|
|
|
|
# installation dans /opt
|
|
|
|
mkdir -p /opt/bin/
|
|
|
|
cp -d $0 /opt/bin/
|
|
|
|
link /opt/bin/getFlashPlayer /usr/local/bin/getFlashPlayer &>/dev/null
|
|
|
|
rm $0 &>/dev/null
|
|
|
|
f_info "$GREEN""le script est installé dans le système.\n"
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
#### système remove ====================================================
|
|
|
|
if [ "$cmd" == "sysremove" ]; then
|
|
|
|
# root? sinon dehors
|
|
|
|
if ! f_root ; then f_error "vous devez être ROOT pour supprimer ce script dans le système"; fi
|
|
|
|
# suppression de /opt
|
|
|
|
rm /opt/bin/getFlashPlayer &>/dev/null
|
|
|
|
unlink /usr/local/bin/getFlashPlayer &>/dev/null
|
|
|
|
f_info "$GREEN""le script est supprimé du système.\n"
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
2017-06-06 03:10:44 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#### installation ======================================================
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# root? sinon dehors
|
|
|
|
if ! f_root ; then f_error "vous devez être ROOT pour installer"; fi
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# debian? sinon dehors / utile? /
|
|
|
|
if ! f_debian ; then f_error "désolé, vous n'utilisez pas Debian :( adieu o/"; fi
|
2017-06-06 02:43:07 +02:00
|
|
|
|
|
|
|
# information soft daube
|
2017-06-06 20:04:42 +02:00
|
|
|
f_avertissement
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
#on récupère la version en ligne
|
|
|
|
f_versionFlash
|
|
|
|
|
|
|
|
# affichage version en ligne pendant l'install version release
|
|
|
|
if [ "$cmd" == "install" ]; then
|
|
|
|
f_info "installation FlashPlayer, version $verFlash"
|
|
|
|
else
|
|
|
|
f_info "installation FlashPlayer, version alternative de test"
|
2017-06-06 02:43:07 +02:00
|
|
|
fi
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# on vire 'flashplugin-nonfree' si installé
|
2017-06-08 11:26:11 +02:00
|
|
|
if dpkg-query -l flashplugin-nonfree &> /dev/null; then apt-get purge flashplugin-nonfree; fi
|
2017-06-06 20:04:42 +02:00
|
|
|
|
|
|
|
# architecture? & url alternative pour version test
|
2017-06-06 02:43:07 +02:00
|
|
|
if [ "$(dpkg --print-architecture)" = "amd64" ]; then
|
|
|
|
architecture='x86_64'
|
2017-06-06 20:04:42 +02:00
|
|
|
urlTest="https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/linux64/"
|
2017-06-06 02:43:07 +02:00
|
|
|
else
|
|
|
|
architecture='i386'
|
2017-06-06 20:04:42 +02:00
|
|
|
urlTest="https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/linux32/"
|
2017-06-06 02:43:07 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
# dossier temporaire de travail
|
|
|
|
fileTemp="/tmp/flash-file/"
|
|
|
|
mkdir -p "$fileTemp"
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# variables daube release
|
|
|
|
url="https://fpdownload.adobe.com/get/flashplayer/pdc/$verFlash/"
|
|
|
|
file="flash_player_npapi_linux.$architecture.tar.gz"
|
|
|
|
|
|
|
|
# chargement flash / à peaufiner les sorties wget /
|
|
|
|
if [ "$cmd" == "installTest" ]; then
|
|
|
|
wget --user-agent="$user_agent" -O $fileTemp$file $urlTest$file &>/dev/null
|
|
|
|
else
|
|
|
|
wget --user-agent="$user_agent" -O $fileTemp$file $url$file &>/dev/null
|
|
|
|
fi
|
|
|
|
|
|
|
|
# gestion erreur wget
|
|
|
|
#1 Generic error code.
|
|
|
|
#2 Parse error---for instance, when parsing command-line options, the .wgetrc or .netrc...
|
|
|
|
#3 File I/O error.
|
|
|
|
#4 Network failure.
|
|
|
|
#5 SSL verification failure.
|
|
|
|
#6 Username/password authentication failure.
|
|
|
|
#7 Protocol errors.
|
|
|
|
#8 Server issued an error response.
|
|
|
|
if [ "$?" != "0" ]; then
|
|
|
|
f_error "problème au chargement, connexion défaillante?" \
|
2017-06-07 01:04:05 +02:00
|
|
|
"Si persistance, merci de prévenir $projet" \
|
2017-06-06 20:04:42 +02:00
|
|
|
"$contact"
|
|
|
|
fi
|
2017-06-06 02:43:07 +02:00
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# décompression archive téléchargée dans dossier de travail
|
2017-06-06 02:43:07 +02:00
|
|
|
tar xaf $fileTemp$file -C $fileTemp
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# on récupère la liste de tous les users dans $listeUsers
|
2017-06-06 02:43:07 +02:00
|
|
|
f_allUsers
|
|
|
|
|
2017-06-06 20:04:42 +02:00
|
|
|
# copie de la biblio dans la config user mozilla, pour *chaque user déclaré* sur le système
|
2017-06-06 02:43:07 +02:00
|
|
|
for user in $listeUsers; do
|
2017-06-06 03:10:44 +02:00
|
|
|
mkdir -p /home/"$user"/.mozilla/plugins
|
|
|
|
cp "$fileTemp"libflashplayer.so /home/"$user"/.mozilla/plugins/
|
|
|
|
chown -R "$user":"$user" /home/"$user"/.mozilla/plugins
|
2017-06-06 02:43:07 +02:00
|
|
|
done
|
|
|
|
|
|
|
|
# on efface le dossier temporaire
|
|
|
|
rm -Rf "$fileTemp"
|
|
|
|
|
|
|
|
# the end
|
2017-06-06 20:04:42 +02:00
|
|
|
f_info "$GREEN""FlashPlayer est installé.\n\t""$BLUE""Pour tester: http://get.adobe.com/flashplayer/about/"
|
2017-06-06 02:43:07 +02:00
|
|
|
|
|
|
|
exit 0
|