Création d’une clé usb bootable en ligne de commande

De mon coté j’ai beaucoup de problèmes avec Unetbootin, qui est sensé être la référence sous Linux pour créer des clés usb bootable. Sous Windows j’utilise Linux Live USB Creator qui est parfait, très ergonomique, grand choix de distributions, mode live, et surtout il fait bien le job. C’est à dire que quand on lui demande de faire une clé usb bootable ca marche à tous les coups :)
Unetbootin ne propose pas le formatage de la clé avant l’installation, du coup au bout de 3 utilisations on a les fichiers d’installation de 3 distributions qui sont mélangés, un menu de boot avec 20 choix, et généralement plus grand chose qui se lance. J’ai aussi souvent des problèmes lors de la création des clés usb : erreur en tout genre, ou assistant qui ne se termine pas tout simplement.
Bref je me suis mis à la recherche d’un remplacant pour Unetbootin, mais je n’ai pas trouvé mon bonheur. Usb-creator semble pas mal, mais à mon premier test j’ai eu une erreur bizarre, genre le nom de la distribution incorrecte, donc ca n’a pas marché (c’est balo quand même). Il existe aussi Multisystem, qui d’après mes souvenirs fait le job mais est un peu trop complexe à utiliser à mon gout. Il faudra que je reteste.
Après quelques minutes de recherche j’ai enfin trouvé la solution ultime, simple et fonctionnelle pour créer des clés usb bootage. Ca se fait en ligne de commande avec une commande ultra simple :

 dd if=/home/user/monimage.iso of=/dev/sdb

Deux petits inconvénients tout de même :

  •  rien ne s’affiche à l’écran une fois la commande lancée jusqu’à la fin de la création
  • si vous souhaitez réutiliser la clé avec des fichiers classiques il faudra passer via Gparted pour supprimer et recréer les partitions

La distribution Linux CrunchBang n'est plus : L'initiateur du projet recommande l'utilisation de Debian


Triste nouvelle pour le monde du libre en général et celui de Linux en particulier : Philip Newborough, le développeur derrière CrunchBang (une distribution Linux des plus personnalisables et facilement utilisable qui est basée sur Debian, Wheezy et Openbox), a annoncé officiellement la fermeture de son projet, en d’autres termes CrunchBang n’est plus. « J’ai décidé d’arrêter le développement de CrunchBang. Ça n’a pas été une décision facile à prendre et je l’ai repoussée des mois durant. C’est difficile de se séparer de quelque chose que vous aimez » a-t-il écrit dans un billet. 

En guise d’explications pour les utilisateurs, il a rappelé les circonstances entourant la genèse de CrunchBang : « quand j’ai commencé à développer CrunchBag, le paysage Linux était alors différent (…) j’ai su qu’il y avait une place pour CrunchBag sur mes propres systèmes. Un petit coup d’œil autour de moi m’a permis de réaliser qu’il semblait également avoir une grande demande sur les systèmes des autres. Je n’en suis pas vraiment certain mais, si je devais deviner, je dirais que c’était probablement dû au manque de compétition/alternative du même calibre. Si mes souvenirs sont exacts, à ce moment-là il n’y avait pas de LXDE tasksel dans Debian et certainement pas de Lubuntu dans les environs. CrunchBang a comblé un vide et c’était chouette ». 

Alors que s’est-il passé ? Pourquoi cette décision ? « Pour tous ceux qui ont été dans l’univers Linux depuis les dix dernières années ou plus, je suis certain qu’ils s’accorderont à dire que les choses ont évolué. Bien que certaines choses soient restées foncièrement les mêmes, d’autres ont radicalement changé. Ça s’appelle le progrès et, la plupart du temps, le progrès est une bonne chose. Ceci étant, quand le progrès arrive, quelques éléments se trouvent littéralement dépassés et, pour moi, CrunchBang est quelque chose que je me dois de laisser derrière. Je le laisse derrière parce que je pense honnêtement qu’il n’a plus aucune valeur et, tandis que je pourrais m’y accrocher pour les valeurs sentimentales qu’il représente, je ne pense pas que ça serait dans le meilleur intérêt des utilisateurs qui bénéficieraient de l’utilisation de vanilla Debian » 

Une annonce somme toute pas très surprenante si on prend certains éléments en considération, par exemple le fait que la dernière mise à jour majeure du système d’exploitation remonte à mai 2013, ce qui représente un long moment pour n’importe quelle distribution Linux. Cependant nous pouvons saluer l’initiative du développeur qui a pris le temps d’expliquer aux utilisateurs la raison de la fermeture, chose qui n’arrive pas très souvent. En effet, il arrive qu’une distribution Linux disparaisse du jour au lendemain avec des développeurs qui restent silencieux sur la raison pour laquelle ils ont mis un terme au projet. Comme exemple nous pouvons citer Pear OS : les utilisateurs ne savent pas vraiment ce qui s’est passé au début de 2014, ils ont juste trouvé un billet du développeur annonçant que le projet était arrivé à son terme sans aucune explication.

Malgré le fait que CrunchBang n’a pas reçu de mise à jour majeure depuis un long moment, la distribution a conquis de nombreux utilisateurs si on se réfère aux réactions sur les forums officiels ainsi que sur la communauté en ligne suite à l’annonce de la fermeture du projet. 

Pour le moment, vous pouvez encore télécharger votre copie du logiciel sur les pages officielles.

Source : CrunshBang

Tous les LiveCD existants sont classés et disponibles sur The LiveCD List


The LiveCd List est un site à mettre directement dans les favoris, il ne fait finalement pas grand chose, mais ce qu'il fait est d'une efficacité et d'une utilité remarquable. Le site recense tous (ou presque) les LiveCD existants, avec pour chacun un lien de téléchargement et un lien vers le site officiel.

Ce qui est pratique, c'est son menu qui permet de cibler rapidement ce que vous recherchez :


  • Creation Tools: contient une liste de logiciels pour créer un liveCD / liveUSB.
  • Purpose: vous pouvez choisir le thème de ce que vous recherchez, si vous mettez security, vous tomberez sur une liste de LiveCD dédiés à la sécurité informatique comme: Kali Linux, Hackin9 Live, OphCrack LiveCD, etc.
  • Operating system: pour choisir le système d'exploitation.
  • Platform: pour choisir votre plateforme.

Un site à garder bien au chaud dans les favoris.

Cheat Sheets pour les programmeurs



Voici une liste des "Cheat Sheets" pour les programmeurs et les administrateurs de systèmes d'exploitations. Une aide mémoire qui ne couvre pas tous les langages de programmations mais qui vous sera utile lors de vos travaux quotidien.
Veuillez cliquer sur le langage pour accéder au lien de téléchargement :


Installer Eclipse IDE sur Ubuntu 14.04


Pour installer la dernière version de Eclipse IDE (4.4.1 la dernière pour le moment), vous devez en premier lieu installer soi OpenJDK Java 7 ou bien Oracle-Java7-installer

Puis vous devez télécharger Eclipse IDE depuis son site web : www.eclipse.org

Puis extraire l'archive télécharger en écrivant dans votre terminal : 
tar -xzvf eclipse-*.tar.gz 

Puis déplacer le dossier résultant dans /opt comme suit : 
sudo mv eclipse/ /opt

Une fois le dossier est déplacé, ouvrez la terminale et créer le raccourcis bureau d'Eclipse comme suit (Vous pouvez choisir l'éditeur de texte que vous désirez, moi j'ai opté pour Gedit): 
sudo gedit /usr/share/applications/eclipse.desktop

Enfin copier ceci dans Gedit : 

[Desktop Entry]
Name=Eclipse 4.4.1
Type=Application
Exec=/opt/eclipse/eclipse
Terminal=false
Icon=/opt/eclipse/icon.xpm
Comment=Integrated Development Environment
NoDisplay=false
Categories=Development;IDE;
Name[en]=Eclipse 

Eclipse maintenant installé et se trouve dans la section Programmes si vous utilisz Gnome-session-fallback ou bien faites une recherche sur Unity ou bien sur Gnome-shell pour le retrouver. 

Création d'une interface GTK+ avec PyZenity


Dans ce biller on va explorer PyZenity qui est une interface facile de Zenity pour Python.
Zenity est normalement appelé à partir d'un script qui l'invoque avec une multitude de paramètres de ligne de commande pour construire ses interfaces GTK+. Ce module cache les détails de l'invocation de la commande et présente les fonctions de l'API simples.

Assez de théorie, on va explorer ensemble un exemple qui invoque les interfaces GTK+ prédéfinies de PyZenity.
Avant de commencer, veuillez télécharger PyZenity 0.1.4 via ce lien sur Google Drive.
Après le téléchargement, vous devez dézipper PyZenity et l'installer comme suit :

sudo python setup.py install

Explication du code :

Question('Appuyez sur un Bouton')



InfoMessage('Vous avez appuyez sur Oui! Valider pour continuer')




List(titre,"Liste",None,True,"ALL",sep='|',data=[("Ananas",20),("Pommes",30)])



GetDate()





GetText("Entrer un mot de passe","",True)




Pour plus d'information, vous pouvez lancer l'interpréteur Python et taper :
help("PyZenity")


Et vous aurez la documentation de PyZenity comme suit :



Ubuntu souffle sur sa dixième bougie


Il y a exactement 10 ans (le 20 octobre 2004), Mark Shuttleworth et son équipe annonçaient la première version du système d’exploitation Ubuntu 4.10 (Warty Warthog).

Un nouveau système d’exploitation open source reposant sur le noyau Linux était né. Il venait rejoindre le lot de systèmes d’exploitation Linux existants. Créé à partir de Debian, Ubuntu se définissait comme « une distribution Linux qui réunit la richesse de Debian et une facilité et rapidité d’installation, des mises à jour régulières (tous les six mois) et une excellente sélection d’applications installées par défaut ».

À ce moment, qui aurait parié qu’Ubuntu allait dépasser les distributions Linux populaires, dont Fedora et Debian, pour devenir l’OS Linux le plus utilisé ? Grâce aux investissements de Mark Shuttleworth pour la création d’une entreprise dédiée à l’OS (Canonical) et à la participation active de sa communauté, Ubuntu a pu, au fil du temps, gagner le cœur des utilisateurs.

À la sortie de la première version, Mark Shuttleworth avait promis que l’OS allait bénéficier des mises à jour de sécurité pendant près de 18 mois et que chaque version allait avoir un support technique. 

Les éléments qui ont contribué au succès d’Ubuntu sont essentiellement sa facilité d’installation et sa sélection d’applications. À sa sortie, la version 4.10 contenait, par exemple, GNOME 2.8 comme environnement de bureau, Firefox 0.9, OpenOffice.org 1.1.2, GIMP 2.0 et Floppy Formatter.

En dix ans d’existence, Ubuntu a gravé son nom dans l’écosystème de l’open source grâce à ses innovations et aux décisions radicales adoptées par Canonical pour faire de la distribution un OS accessible au grand public. Ces choix n’ont pas manqué de générer des heurts avec la communauté de l’open source.

Pour Shuttleworth, l’objectif d’Ubuntu n’était pas d’être une autre variante amateur de Linux, mais d'être un challenger sérieux de Windows, Apple et Android. « Ubuntu ne peut pas fonctionner comme une distribution purement axée sur la communauté Linux. Ce genre de modèle ne peut pas fonctionner pour un projet aussi ambitieux », avait affirmé Shuttleworth.

Ainsi, malgré les critiques de la communauté, Ubuntu a adopté par défaut son propre bureau Unity, a développé son propre serveur d’affichage Mir. Des éléments essentiels pour étendre l’écosystème au mobile.
Dans quelques jours sortira Ubuntu 14.10 « Utopic Unicorn », la prochaine mise à jour majeure de l’OS, qui promet de continuer à perpétuer la philosophie autour du développement de l’OS.


[PyGObject] Calculatrice PyGtk


Calculatrice PyGtk3+ est une calculatrice basique développée sous Python3 et en utilisant le module PyGObject (nommé aussi PyGI). 

Le principe de cette calculatrice est simple : 
 - L'utilisateur écrit les nombres de son équation
 - L'affichage est immédiat des nombres
 - Le point "." est remplacé lors de l'affichage par une virgule "," , mais il est utilisé comme un point lors des calculs internes de l'application
 - L'idée du calcule repose sur la fonction eval ,qui est une fonction propre à Python 3.xx, qui prend le texte affiché dans la Gtk.Entry (nommée : "entree" dans notre application) et le calcule. 
- En cas d'erreur lors de la saisie, rien ne se passe jusqu'à la correction de la syntaxe entrée.

**Fix & update** 27/10/2014 : 
  • Ajout des icônes sur les boutons : "Fermer", "Effacer tout" et "effacer le dernier chiffre"
  • Ajout des parenthèses "(" et ")"
  • Ajout du racine carré et de la méthode "calcul_racine"
  • Le bouton "=" occupe maintenant deux colonnes
**Fix ** 28/10/2014 :
  • Correction de la méthode "calcul_racine" et optimisation du code grâce à arshajii du forum stackoverflow.com
**Fix & Update** 29/10/2014  :
  • Ajout des fonctions trigonométriques
  • Optimisation du code
  • Création d'un dossier pour le logo et l'icône
**Update** 30/10/2014  :
  • Ajouter un sub-menu pour choisir le font et la taille de la Gtk.Entry

Vous pouvez télécharger le code source de Calculatrice PyGtk sur Github ou bien sur Google Drive

[Gnu/Linux] Quelques lignes de commande utiles




  • Opérations sur les dossiers : 
    pwd              Afficher le répertoire courant
    cd dir            Changer le répertoire courant vers le répertoire "dir"
    cd                Aller vers le dossier "home"
    cd ..              Ouvrir répertoire parent
    cd -               Ouvrir répertoire précédent
    cd .               Ouvrir répertoire courant
    mkdir dir      Créer un nouveau répertoire nommé "dir"
    rmdir            Supprimer le répertoire "dir"
    ls dir             Lister le contenu du répertoire "dir"
    ls -a              Lister le contenu du répertoire (les dossiers cachés sont inclus)
    ls -l               Lister le contenu du répertoire en format longue (plus de détails)
    ls -t               Lister le contenu du répertoire en fonction du temps de création du contenu
    ls -S              Lister le contenu du répertoire en fonction de la taille de son contenu
    ls -r               Lister le contenu du répertoire en renversant l'ordre
    ls -R              Lister le contenu du répertoire d'une manière récursive


  • Opérations sur les fichiers :   
     touch file                Création d'un nouveau fichier vide nommé "file"
     cp file1 file2           Copier le contenu du "file1" dans "file2"
     mv file1 file2          Copier "file1" et le renommer en "file2"
     rm file                     Supprimer "file"
     cat file                    Afficher le contenu du "file"
     cat file1 file2         Concaténer "file1" et "file2"
     less file                  Afficher le contenu du "file" petit à petit. "q" pour quitter
     head file                Afficher les 10 premières lignes du fichier "file"
     tail file                  Afficher les 10 dernières lignes du fichier "file"
     tail -n 5 file           Afficher les 5 dernières lignes du fichier "file"
     taile -f file             Afficher les 10 dernières lignes avec mise à jour continue d'affichage


  • Aide (help) :  
     man cmd               Afficher le manuel de la commande "cmd"
     man -k word          Rechercher dans le manuel du mot "word"
     -h                           Option "-h" affiche l'aide de la commande


  • Recherche des fichiers : 
     grep pattern file           Recherche des lignes avec la méthode "pattern" dans les dossier et fichiers
     grep -v file                   Inverser la recherche
     grep -r  file                   Recherche récursive
     grep -e patt -e patt  file   Recherche méthodique multiples "patt"
     locate file                      Recherche rapide d'un fichier
     wich cmd                      Rechercher l'endroit  binaire dans l'OS de la commande "cmd"
     find dir -name pattern   Recherche le répertoire "dir" avec une méthode "pattern".
                   Exemple : find photos -name photos
   

  • Les standards IO Streams :  
     stdin                   Données entrées en lignes de commande
     stdout                 Données de sortie affichées dans l'écran
     stderr                  Erreurs de sortie affichées dans l'écran
     echo string         Afficher "string" dans l'écran
   

  • Redirections 
     cmd > file          Mettre la sortie de la commande "cmd" dans "file"
     cmd < file         "File" est utilisé comme donnée d'entrée à la commande "cmd"
     cmd >> file       Ajouter la sortie de la commande "cmd" au fichier "file"
     cmd 2> file       Écrire les erreurs de sortie dans "file"
     cmd &> file      Écrire les erreurs et la sortie de la commande "cmd" dans "file"


  • Les Pipes et les commandes multiples : 
     cmd1 | cmd2    Les données de sortie de la commande "cmd1" sont utilisés comme entrées dans la commande "cmd2"
     cmd1 | &cmd2   Stderr de la commande "cmd1" sont utilisées comme données d'entrée de la commande "cmd2"

     cmdPart1 \
     cmdPart2     Continuer la commande dans dans la ligne suivante

     cmd1; cmd2    Exécuter "cmd1" puis "cmd2"


  • Processus : 

      ps     Afficher les processus de l'utilisateur
      ps -e    Afficher tous les processus
      ps -fA    Afficher tous les processus en détails
      top        Afficher les processus en temps réel
      cmd &    Exécuter la commande "cmd" en arrière plan
      Ctrl + C    Stopper (tuer) le processus en action
      Ctrl + Z    Suspendre le processus en action
      bg             Placer le processus suspendu en arrière plan
      fg             Amener le processus en arrière plan au premier plan d'exécution
      kill Pid     Tuer un processus par son ID Pid
      kill -9 Pid     Tuer un processus (d'une manière forte) par son ID Pid



  • Opérations sur les fichiers texte : 

     wc file      Compter les lignes, les mots et les caractères du fichier "file"
     sort file     Classer "file" ligne par ligne
     sed 's/abc/def/g' file    Remplacer les occurrences de "abc" par "def" dans le fichier "file"
 


Pour de commandes, veuillez consulter : Bash Commands

[PyGObject] Youtube-dl Pygtk Gui


Youtube-dl PyGtk Gui est une interface graphique du célèbre youtube-dl, crée avec Python 3.xx en utilisant le module Python PyGtk3 (PyGObject nommé aussi PyGI) et GLib.

Beaucoup de mots difficiles ? hein ?
Pas de problème. Je vais tout expliquer par la suite .

youtube-dl : Est un programme tournant sur presque tous les systèmes d'exploiations (Windows, Mac OS X, Gnu/Linux, Unix, Unix-like, BSD , etc...). Cette portabilité est due au  langage de programmation Python qui s'exécute sur les différents systèmes d'exploitations cités (autres aussi).

Python : est un langage de programmation objet, multi-paradigme et multiplateformes. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl. La dernière version stable de Python est Pyton 3.4.2. (source Wikipédia)

PyGtk3 : Est un module Python permettant la création d'interfaces graphiques utilisant la bibliothèque GTK2. Depuis la version GTK3, PyGObject (appelé aussi : PyGI) remplace PyGtk dans ce rôle.
PyGObject (PyGI) : Est une liaison entre Python et GLib/GObject/GIO/Gtk+. Ce qui signifie : PyGI est une module Python qui donne accès propre et conforme à l'ensemble de la plateforme de logiciel de GNOME grâce à l'utilisation de l'introspection GObject.

GLib : est une bibliothèque libre de manipulation de structures de données - arbres, table de hachage et listes. Elle a commencé en tant qu'élément de GTK+, mais est utilisée maintenant par de nombreuses applications.
C'était à l'origine une bibliothèque utilisée comme fourre-tout pour le code bas niveau. Elle s'est désormais étendue pour offrir des fonctionnalités diverses qui sont en plus portables.
GLib fait partie du paquet GTK+ du projet GNU. Elle est distribuée selon les termes de la licence GNU LGPL.


Ouuuuf !! Des définitions, des définitions et encore des définitions !!

N'ayez pas peur. Il faut connaître ces outils pour ne pas se casser la tête en tout créant du point de départ (from scartch). Python et tous ces modules nous facilitent la vie et nous donnent un accès à une multitude de choix pour ne pas compliquer la création des GUI.
En effet, je me rappelle de mon professeur d'analyse quand il nous a dit pour ne pas compliquer la résolution de cette équation, on la traite avec les nombres complexes et la résultat sera directe.
Notre cas suit la règle de mon professeur : Pour créer une interface graphique basée sur GTK+, faudra bien connaître nos outils de travail et savoir les manipuler.

Assez de théorique. Un peu de pratique.
Le code source de "Youtube-dl PyGtk Gui" peut être téléchargé soi sur Google Drive ou bien sur Github.


  • Explication du concept générale du programme :


"Youtube-dl PyGtk Gui" est une interface graphique qui se base sur "youtube-dl" qui pourra être téléchargé et installé via ce lien (lien officiel de youtube-dl).
Lors du lancement de "Youtube-dl PyGtk Gui", l'utilisateur doit entrer l'URL de la vidéo youtube qu'il veut télécharger, puis choisir le format souhaité (pour l'instant la GUI supporte les formats MP4 et FLV, les autres formats et fonctionnalités seront ajoutées dans les prochaines versions du programme). L'appui sur le bouton télécharger actionne youtube-dl en lui envoyant l'option du téléchargement d'une vidéo, la format et l'URL. Les informations collectées par notre GUI et affichées sur son TextView (espace de visualisation textuel). L'appui sur le bouton Stopper, annule le téléchargement et stoppe la barre de progression "ProgressBar".


  • Explication de quelques concepts du code utilisé :
Je dois remercier gianmant du forum  stackoverflow pour l'idée de l’a-synchronisation en utilisant GLib :


GLib.source_remove(self.source_id_out) : Enlever self.source_id_out de la boucle principale.
Gtk.events_pending() : Retourne "True" s'il y a un événement en attente dans le programme et "False" dans le cas contraire.
Gtk.main_iteration_do(False) : Ne pas bloquer l'itération du programme
GLib.spawn_async(params,flags=GLib.SpawnFlags.SEARCH_PATH|\
GLib.SpawnFlags.DO_NOT_REAP_CHILD,standard_output=True,standard_error=True) :
 La définition générale est : GLib.spawn_async(arguments,flags,child,setup,standard_output,standard_error)
GLib.spawn_async appelle la fonction GLib.spawn_async_with_pipes sans les pipes, Donc : GLib.spawn_async = Exécute un programme enfant (child)de manière asynchrone. Ce qui signifie que le programme ne sera pas bloqué en attendant l'enfant (processus enfant) pour quitter.
io = GLib.IOChannel(stdout) : Création d'une variable qui stock les informations du socket de retour
err = GLib.IOChannel(stderr) : Création d'une variable qui stock les informations du socket d'erreur
self.source_id_out = io.add_watch(GLib.IO_IN|GLib.IO_HUP, write_to_textview,self.tw_out,priority=GLib.PRIORITY_HIGH) : La définition générale est : def glib.io_add_watch(file id, condition, callback, addional arguments ...)                               File ID : GLib.IO_IN = Date to read / GLib.IO_HUP = Hang UP / GLib.IO_ERR =  Condition d'erreur / GLib.IO_out = Données peuvent être écrites / Glib.IO_PRI = Données urgentes pour la lecture . add_watch : contrôle le file id par la condition ajoutée et si la condition est vraie, callback sera exécuté
GLib.spawn_close_pid(pid)  : Faut fermer GLib.spawn_asyn avec GLib.spawn_close_pid()


  • Mise à jour : 

18/10/2014 Fixed - Support des formats suivants :
  • WEBM [Audio Basse Qualité]
  • M4A [Audio]
  • MP4 [Vidéo 144p]
  • WEBM [Vidéo 240p]
  • MP4 [Vidéo 240p]
  • WEBM [Vidéo 360p]
  • MP4 [Vidéo 360p]
  • WEBM [Vidéo 480p]
  • MP4 [Vidéo 480p]
  • WEBM [Vidéo 720p]
  • MP4 [Vidéo 720p]
  • WEBM [Vidéo 1080p]
  • MP4 [Vidéo 1080p]
  • 3GP [Vidéo 176x144]
  • 3GP [Vidéo 320x240]
  • FLV [Vidéo 400x240]
  • WEBM [Vidéo 640x360]
  • MP4 [Vidéo 640x360]
  • MP4 [Vidéo 1280x720 Meilleure Qualité]
    • Une seule zone d'affichage du traitement lors du téléchargement
    • Ajout de deux fenêtres de dialogues en cas de mauvaise manipulation du logiciel
    • Ajout de la repository GitHub
09/11/2014 Update :

  • Optimisation du code source
  • Fenêtre de taille fixe
  • VBox homogène
  • Traduction de la Gui en anglais
11/11/2014 Update :

  • Ajout d'une interface de choix de langue (Français et anglais)



[Tutoriel] : Affichage d'une série de wagons, des personnages dans les fenêtres et changer la couleur des wagons.


Dans ce billet on va explorer un autre exemple d'un programme crée avec Python en utilisant le module "Tkinter" (nommé aussi : Tk). 
Ce billet utilisera des techniques vues dans ce billet, qui nous permettra d'afficher une fenêtre contenant trois wagons et plusieurs fenêtres. L'appui sur le bouton "Train" affichera les wagons, l'appui sur le bouton "Salut" affichera des petits visages dans les fenêtres et la saisie d'une couleur en appuyant sur le bouton "Éclaire" changera la couleur du premier et du troisième wagons. 
Voilà une image "gif" qui illustre le fonctionnement de notre programme. 


À noter : Le code source en Python est fonctionnel avec "Python 3" et plus. 
Avec les versions antérieures vous rencontrez des erreurs. Et aussi, il faut respecter l'indentation lors de la saisie du code sur vos IDE préférés.

Vous pouvez télécharger le code source (Mis en format .zip)  sur Google Drive.


ShellShock nouvelle vulnérabilité du Bash


ShellShock ? C'est quoi ? Et comment savoir si mes systèmes sont affectés ? 

Récemment, une nouvelle vulnérabilité a été trouvé qui a le potentiel d'affecter les distributions Gnu/Linux, Mac OS X et UNIX OS. La première découverte date du 24 Septembre 2014 et elle a été nommé "Bash Bug" ou "ShellShock", Le "Gnu Bash Remote Code Execution Vulnerability" (CVE-2014-6271 et CVE-2014-7169) peuvent donner aux Hackers le contrôle des données et du réseau du système infecté par ce bug.
La vulnérabilité affecte seulement le "Bash Shell" qui est un interpréteur de langage de commande. Elle permet au Hacker d'attacher des codes malicieux aux variables environnementaux qui affectent à leur tour les processus tournant sur un ordinateur.

Un test et des patchs ont été crée par la communauté Gnu/Linux pour éliminer ce bug de leur distributions.

Le test consiste à exécuter ces codes sur votre Bash terminale :

  Exploit 1 : CVE-2014-6271 :
     
~$ env x='() { :;}; echo Vulnérable' bash -c "echo c\'est un test"

    Si vous voyez Vulnérable alors vous devez appliquer le patch à votre Bash. Sinon vous n'êtes pas affecté par ShellShock.

  Exploit 2 : CVE-2014-7169 :
  
~$ env X='() { (shellshocker.net)=>\' bash -c "echo date"; 
cat echo; rm ./echo

 Si vous aurez des erreurs et non pas la date, votre système est infecté et vous devez appliquer le patch.

 Exploit 3 : 

~$  env X=' () { }; echo Vulnérable' bash -c 'date'

 Si le résultat est Vulnérable, votre système est infecté et vous devez appliquer le patch à votre système.

 Exploit 4 : CVE-2014-7186 :

~$  bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF 
<<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo "CVE-2014-7186 vulnérable,
 redir_stack"
Si votre système est vulnérable vous aurez comme résultat : CVE-2014-7186 vulnérable, redir_stack.

 Exploit 5 : CVE-2014-7187 :

~$  (for x in {1..200} ; do echo "for x$x in ; do :"; done; 
for x in {1..200} ; do echo done ; done) | bash ||
 echo "CVE-2014-7187 vulnérable, word_lineno"

Si votre système est vulnérable vous aurez comme résultat : CVE-2014-7187 vulnérable, word_lineno.

Exploit 6 : CVE-2014-6278
 
~$ shellshocker='() { echo Vous êtes vulnérable; }' 
bash -c shellshocker

Si votre système est vulnérable vous aurez comme résultat : Vous êtes vulnérable. Sinon une erreur.


Pour détourner ce Bug et sécuriser votre Bash, veuillez appliquer la mise à jour de votre Bash comme suit : 

 Pour Suse, OpenSuse et leur dérivées : 
 
~$ yum update bash -y

 Pour Ubuntu et ses dérivées : 


~$  apt-get update; apt-get install --only-upgrade bash



Pour Arch Linux et ses dérivées : 

 
~$ pacman -Syu



Pour plus de détails, veuillez visiter le site officiel de ShellShock.

Debian retourne à Gnome


Les développeurs de la distribution Debian ont choisi l'environnement graphique Xfce comme environnement graphique par défaut en Novembre 2013. Mais ce choix n'a pas duré longtemps, parce qu'il y a des jours, les développeurs ont restauré Gnome comme environnement graphique par défaut en se basant sur les résultats primaires de " Debian Desktop Requalification for Jessie".

Selon Joey Hess, le développeur de Debian qui a appliqué ce changement, l'idée générale derrière ce retour à Gnome est du à l’accessibilité et à l'intégration de "systemd".
Bien sûr, ils ne sont pas les seuls raisons qui ont influencé ce changement. On doit noter que l'équipe qui maintient Xfce sur Debian est très limitée et les améliorations de Gnome 3 sont importantes.

La date de sortie de la prochaine distribution de Debian nommée "Jessie" est fixée au 5 Novembre 2014.