Auteur Sujet: Script de mise à jour multiversion.  (Lu 6529 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne coyotus

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 3710
  • Notoriété : +249/-30
  • IN GNU WE TRUST
    • Groupe d'Utilisateurs de GNU/Linux...
Script de mise à jour multiversion.
« le: 14 octobre 2016 à 17:27:28 »
Avec les versions V1, V2, sana, moto & rolling difficile de suivre entre les changements de dépôts et les versions, alors pour simplifier la chose, j'ai vite écris ce script qui mettra à jour les dépôts des anciennes versions, sans devoir aller vérifier les dépôts sur la doc officielle.

Il s'agit d'une version à améliorer, je suis ouvert à tout retour et idée pour l'améliorer.

#!/bin/bash
# Under licence GPLv3 http://www.gnu.org/licenses/gpl.txt
#Kali rolling updater

red='\e[0;31m'
NC='\e[0m'
yellow='\e[0;33m'

if ping -c 1 8.8.8.8 > /dev/null 2>&1
  then
    echo "[*]Internet connection OK ..."
    if [ "$(whoami)" != root ]
      then
        echo -e "$red Error:$NC $yellow You must be root for running this script ! $NC"
      exit 1
   fi
else
  echo "You are not connected to the Internet. Check your connection"
  exit 1
fi

if [ "$(lsb_release -is)" != Kali ]
then
    echo -e "$red Error:$NC $yellow Sript only available for Kali Linux ! $NC"
    exit 1
fi

if grep -q rolling /etc/apt/sources.list
then
    mv /etc/apt/sources.list /etc/apt/sources.list.bak
    echo "deb http://http.kali.org/kali kali-rolling main contrib non-free" > /etc/apt/sources.list
    echo -n "updating..."
    apt-get -qq update && apt-get dist-upgrade
else
    case "$(lsb_release -cs)" in
       "sana"|"moto")
         mv /etc/apt/sources.list /etc/apt/sources.list.bak
         echo "deb http://old.kali.org/kali $(lsb_release -cs) main non-free contrib" > /etc/apt/sources.list
         echo -n "updating..."
         apt-get -qq update && apt-get dist-upgrade
      ;;
       *)
         echo -e "$red Error:$NC $yellow Script only available for Kali Linux ! $NC"
         echo "aborting..."
         exit 1
     ;;
    esac
fi
« Modifié: 17 octobre 2016 à 17:14:18 par coyotus »

Hors ligne Koala

  • Contributeur de Kali-linux.fr
  • Membre sérieux
  • *****
  • Messages: 311
  • Notoriété : +17/-0
Re : Script de mise à jour multiversion.
« Réponse #1 le: 14 octobre 2016 à 20:31:49 »
Merci pour le partage  :)


Concernant le script, c'est pas moi qui vais pouvoir donner un avis avisé ou l'améliorer vu mes maigres connaissances en prog, je code vite fait pour automatiser des taches mais le mot coder et a prendre avec des pincettes  :)

Hors ligne coyotus

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 3710
  • Notoriété : +249/-30
  • IN GNU WE TRUST
    • Groupe d'Utilisateurs de GNU/Linux...
Re : Re : Script de mise à jour multiversion.
« Réponse #2 le: 14 octobre 2016 à 20:38:13 »
je code vite fait pour automatiser des taches mais le mot coder et a prendre avec des pincettes  :)
On commence tous comme ça puis on se retrouve à coder tout et n'importe quoi, puis à recoder tout ses anciens scripts et pour finir on se débrouille pas mal :)

Hors ligne Koala

  • Contributeur de Kali-linux.fr
  • Membre sérieux
  • *****
  • Messages: 311
  • Notoriété : +17/-0
Re : Script de mise à jour multiversion.
« Réponse #3 le: 14 octobre 2016 à 21:01:55 »
Pas faux   ;)

Hors ligne kcdtv

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 627
  • Notoriété : +55/-3
    • crack-wifi.com
Re : Script de mise à jour multiversion.
« Réponse #4 le: 17 octobre 2016 à 13:14:09 »
Peut être qu'une petite boucle de vérification privilèges et connexion en début de script ne serait pas de trop...
par example
if ping -c 1 google.com ;
  then
    if [ "$whoami" != "root" ] ;
      then
        echo "You do not have root privileges. Launch the script again with sudo or from a root session "
        exit 1
     fi
else
  echo "You are not connected to the Internet. Check your connection"
  exit 1
fi
Pareil que koala, je joue aux légo, je ne suis pas programmeur  :D
il faudrait que je me mettes sérieusment à python un jour... (ça fait 5 ans que je dis ça  ;D )
La fonction de vérification c'est application du principe que quelqu'un qui sait m'a dit d'appliquer : Never trust the user.
Merci pour le partage  ;)


Hors ligne Koala

  • Contributeur de Kali-linux.fr
  • Membre sérieux
  • *****
  • Messages: 311
  • Notoriété : +17/-0
Re : Script de mise à jour multiversion.
« Réponse #5 le: 17 octobre 2016 à 13:57:57 »
Idem va falloir que je m'y mette  8) mais entre le dire et le faire...  ;D

Sinon tu peux aussi check les droits comme ça: (j'utilise ce morceau de code dans un script bash destiné aux rogue ap avec airbase et hostapd et compagnie qui sera dispo bientot normalement)
Citer
if [ "$(id -u)" != "0" ]; then
   echo -e "\e[1;31m[!]\e[0m Desole mais ce script a besoin des droits d'admin" 1>&2
   exit 1
else
   clean=1
   f_menu
fi

Hors ligne coyotus

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 3710
  • Notoriété : +249/-30
  • IN GNU WE TRUST
    • Groupe d'Utilisateurs de GNU/Linux...
Re : Script de mise à jour multiversion.
« Réponse #6 le: 17 octobre 2016 à 17:15:26 »
J'ai mis le script à jour avec vos remarques, bien que je pense que généralement les utilisateurs de Kali sont root et savent si ils sont connecté lol.

Hors ligne Koala

  • Contributeur de Kali-linux.fr
  • Membre sérieux
  • *****
  • Messages: 311
  • Notoriété : +17/-0
Re : Script de mise à jour multiversion.
« Réponse #7 le: 17 octobre 2016 à 20:10:22 »
J'admets  ;D

Hors ligne kcdtv

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 627
  • Notoriété : +55/-3
    • crack-wifi.com
Re : Script de mise à jour multiversion.
« Réponse #8 le: 18 octobre 2016 à 10:03:05 »
  Le Monsieur te dis: In user we DON'T trust!  ;D
La loi de murphy: Si il y a une "connerie" à faire, une erreur à commettre, même basique est évidente,  ne cherches pas, quelqu'un la fera.
  Je t'en parle en connaissance de cause: J'ai réussis à effacer mon propre système d'exploitation  avec dd en voulant monter une live de Kali.
J'ai fais une espèce de gros sudo rm -rf /* à moi même,  banzaiiiiiiiiiiiiiiiiiiiiiii
Le truc qui fait rire mais sur le moment pas trop  :D

Hors ligne Colibri

  • Membre Junior
  • *
  • Messages: 10
  • Notoriété : +0/-0
  • Débutant Linux/Pentest
Re : Script de mise à jour multiversion.
« Réponse #9 le: 27 novembre 2016 à 03:36:44 »
Merci beaucoup, marche parfaitement et moi qui commence à apprendre le bash ça m'aide à voir des possibilités ^^.

Hors ligne lobo1512

  • Membre Junior
  • *
  • Messages: 26
  • Notoriété : +0/-0
Re : Script de mise à jour multiversion.
« Réponse #10 le: 31 décembre 2017 à 15:31:53 »
Bonjours.
Avec mes faibles connaissances en bash, je me demande pourquoi ceci fonctionnerai à chaque nouvelles versions :
if grep -q rolling /etc/apt/sources.list
then
    mv /etc/apt/sources.list /etc/apt/sources.list.bak
    echo "deb http://http.kali.org/kali kali-rolling main contrib non-free" > /etc/apt/sources.list
    echo -n "updating..."
    apt-get -qq update && apt-get dist-upgrade
else
    case "$(lsb_release -cs)" in
       "sana"|"moto")
         mv /etc/apt/sources.list /etc/apt/sources.list.bak
         echo "deb http://old.kali.org/kali $(lsb_release -cs) main non-free contrib" > /etc/apt/sources.list
         echo -n "updating..."
         apt-get -qq update && apt-get dist-upgrade

Car lorsque kali va up de version le dépôt de rolling va changer d'adresse :
kali.org... > old.kali.org...
Du coup le script ne fonctionnera plus.

Je ne penses pas être capable de le coder mais peut-être pour un script qui serait fonctionnel même dans le cas d'une nouvelle version, il faudrait que le script aille chercher sur le web le nom de la dernière version mise en ligne.
A tout hasard et je dis certainement une bêtise mais c'est juste pour essayer de donner une piste, peut être un grep couplé avec un wget qui ne récupèrerait que le nom du fichier de la dernière release ???

Hors ligne _john_doe

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 508
  • Notoriété : +19/-5
Re : Script de mise à jour multiversion.
« Réponse #11 le: 31 décembre 2017 à 16:20:28 »
if grep -q rolling /etc/apt/sources.list
then
    mv /etc/apt/sources.list /etc/apt/sources.list.bak
    echo "deb http://http.kali.org/kali kali-rolling main contrib non-free" > /etc/apt/sources.list
    echo -n "updating..."
    apt-get -qq update && apt-get dist-upgrade
Ce bout de code verifie que dans ton sources.list il est fait mention de rolling (qui est TOUJOURS (voila la subtilité) la derniere version actuelle de Kali).
Si oui il crée une sauvegarde de ton sources.list actuel (bak) et renseigne le fichier sources.list avec le lien officiel (deb http://http.kali.org/kali kali-rolling main contrib non-free).
Ensuite il fait un update et un full upgrade via ces dépots.

else
    case "$(lsb_release -cs)" in
       "sana"|"moto")
         mv /etc/apt/sources.list /etc/apt/sources.list.bak
         echo "deb http://old.kali.org/kali $(lsb_release -cs) main non-free contrib" > /etc/apt/sources.list
         echo -n "updating..."
         apt-get -qq update && apt-get dist-upgrade
On tombe sur ce code si le grep ne nous a pas retourné rolling passé en argument (ce qui signifie donc que dans notre sources.list nous ne pointons pas sur la derniere version de kali.
On verifie d'abord la version de kali (sana)
Puis on fait la meme chose que precedamment sauf que l'on renseigne les sources.list de sana.

Donc pour repondre a ta question tu trouveras toujours en ROLLING les derniers depots à jour donc cette maj fonctionnera car ROLLING ne sera jamais déprécié.
C'est un changement majeur depuis la version sana, en fait il n'y plus de releases de kali (sana & co) mais un ROLLING qui signifie MAJ permanente.
Encore un peu de lecture :  :)
https://www.kali.org/news/kali-linux-rolling-edition-2016-1/

Je laisse completer Coyotus car si je me souviens bien ce script etait de lui.

Hors ligne lobo1512

  • Membre Junior
  • *
  • Messages: 26
  • Notoriété : +0/-0
Re : Re : Script de mise à jour multiversion.
« Réponse #12 le: 31 décembre 2017 à 16:47:03 »
(qui est TOUJOURS (voila la subtilité) la derniere version actuelle de Kali).
Merci, je comprend mieux le pourquoi du comment, j'étais justement en train de chercher comment récupérer le nom de la dernière release pour en faire un paramètre afin de proposer quelque chose de probant, du coup j'arrête mes recherches. Quoique il y aurait peut-être des applications possibles pour d'autres distri.

Je découvre à peine Kali et je trouve cette distri vraiment intéressante, pas seulement pour l'apprentissage de la sécurité informatique, mais également sur ses particularités, la façon dont elle est développé et supporté... Faire un nom permanent de release pour la dernière version mise en ligne c'est plutôt surprenant quand on le découvre !

Hors ligne coyotus

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 3710
  • Notoriété : +249/-30
  • IN GNU WE TRUST
    • Groupe d'Utilisateurs de GNU/Linux...
Re : Re : Re : Script de mise à jour multiversion.
« Réponse #13 le: 01 janvier 2018 à 19:08:44 »
j'étais justement en train de chercher comment récupérer le nom de la dernière release pour en faire un paramètre afin de proposer quelque chose de probant, du coup j'arrête mes recherches. Quoique il y aurait peut-être des applications possibles pour d'autres distri.
lsb_release -cs ou grep -i version /etc/os-release et tu filtre avec awk

Hors ligne lobo1512

  • Membre Junior
  • *
  • Messages: 26
  • Notoriété : +0/-0
Re : Re : Re : Re : Script de mise à jour multiversion.
« Réponse #14 le: 01 janvier 2018 à 21:50:37 »
j'étais justement en train de chercher comment récupérer le nom de la dernière release pour en faire un paramètre afin de proposer quelque chose de probant, du coup j'arrête mes recherches. Quoique il y aurait peut-être des applications possibles pour d'autres distri.
lsb_release -cs ou grep -i version /etc/os-release et tu filtre avec awk
Merci, mais ceci me donne la release installé sur la machine sur laquelle je lance la commande. Je me suis mal exprimé, ce que je cherchais à faire c'est récupérer sur le net le nom de la dernière release disponible et d'en faire un parramètre, par exemple pour faire un truc du genre :
if
         lsb_release -cs =! $le_parrametre_dernière_release_dispo
do
         quelque_chose