[Mémo] Désactiver la mise en veille sur un ordinateur portable

Portable ferméJ’ai eu besoin d’utiliser un ordinateur en tant que serveur (DHCP et fichiers) sur un réseau et, pour diverses raisons, j’ai préféré utiliser un ordinateur portable pour rendre ces services.

Cependant, la fermeture de l’écran mettait l’ordinateur en veille, et les services n’étaient plus rendus. Normal.

Pour désactiver ce fonctionnement qui est normalement désiré lors de l’utilisation en tant que poste de travail, il suffit d’aller modifier une variable dans un fichier.

Sur Ubuntu et Debian, éditez le fichier /etc/systemd/logind.conf , dé-commentez et modifiez la valeur de la ligne HandleLidSwitch.

Il suffit ensuite de mettre la valeur voulue pour le comportement désiré, dans le cas présent, ignore pour ignorer la fermeture de l’écran.

HandleLidSwitch=ignore

source: http://ubuntuhandbook.org/index.php/2013/12/change-behavior-when-lid-is-closed/

TOX, une alternative libre à Skype?

TOX est un logiciel prometteur de messagerie, téléphonie IP et vidéoconférence multi-plateforme libre et ouvert qui offre à ses utilisateurs les mêmes fonctionnalités que Skype sans que leur vie privée ne soit révélée.

En plus d’être un client libre et gratuit, TOX propose des fonctions intéressantes telles que:

  • Fonctions de messagerie instantanée facile et sûre
  • Il existe un client en console (et même deux!)
  • Appels vidéos totalement cryptés
  • Une interface utilisateur facile d’utilisation
  • Pas de messages publicitaires ou de paiement à effectuer pour débloquer des fonctionnalités
  • Le code de l’application est disponible par l’intermédiaire d’un dépôt Git

tox

Vu que j’ai eu des demandes répétées pour remplacer Skype depuis la révélation de PRISM, je vais m’y pencher sérieusement. Attention: ce n’est pas compatible avec Skype! Il faut un client TOX à chaque extrémité de la communication. Ce n’est pas un problème pour mes clients qui sont plus attachés à la confidentialité de leurs communications qu’à l’utilisation d’un logiciel particulier.

Pour plus d’infos, vous pouvez consulter le site web (fr), le wiki (en) ou le dépôt Git.

Utilisation de Venom sur Ubuntu

J’ai installé le client officiel Venom depuis la page de téléchargements sur Ubuntu 12.04 64bits sans problème (dépendances nécessaires: libgtk-3-0 (>= 3.4.1), libjson-glib-1.0-0 (>= 0.14.2), libsqlite3-0 (>= 3.7.9)) sans difficulté.

Après lancement de Venom, je me suis demandé comment trouver l’identifiant unique généré à l’installation… C’est en effet cet identifiant que vous devrez transmettre à votre correspondant pour lui permettre de vous contacter.

En fait c’est simple, il suffit de cliquer sur la petite flèche blanche à droite du nom d’utilisateur et choisir Edit user pour modifier votre pseudo et obtenir l’ID que vous copierez facilement dans le presse papier grâce que bouton dédié. Mauvais point, le logiciel est en anglais…

Il ne vous reste plus, ensuite, qu’à transmettre cet ID à votre correspondant par mail ou autre moyen pour qu’il puisse vous ajouter à sa liste.

Même en l’absence de serveur centralisé gérant les pseudos, personne ne peut prendre votre identité auprès de vos correspondants puisque c’est l’ID qui est utilisé, et nom le pseudo. Mais comme les humains interprètent mieux les lettres que les chiffres, c’est le pseudo qui sera affiché dans la liste des utilisateurs.

tox_param

Utilisation de Venom sur Windows 7

Le client est fourni sous forme d’un zip, autant pour Venom que pour l’autre client QT Gui. Un installateur aurait été plus simple pour les néophytes, mais tout est inclu dans le zip, donc pas besoin d’installation.

Il suffit d’extraire les fichiers de l’archive pour lancer venom.exe.

Une fois lancé, message du pare-feu de Windows sur lequel il suffit de cliquer sur Autoriser l’accès.

Le client est identique à celui de linux, donc les réglages sont au même endroit. Mauvais point, il est en anglais.

J’ai envoyé une demande de contact depuis windows vers linux, et linux m’a affiché le message suivant au bout de 15 secondes

venom_add_contact

Il suffit ensuite de cliquer sur le correspondant dans la liste pour ouvrir une fenêtre de chat classique.

Attention, il y a un délai d’environs 45 secondes avant lequel vous pouvez envoyer les messages. Passé ce délai, c’est vraiment instantané tant que l’échange continue, mais dès que vous arrêtez de communiquer quelques secondes, le délai reprend. Je pense qu’il s’agit du délai de création du canal de communication.

Juste après l’acceptation d’un utilisateur, vous voyez son ID dans la liste des contacts, mais après quelques secondes, c’est son pseudo qui apparaît.

Echange de fichiers

  • J’ai fait plusieurs tests, parce que j’avais des résultats étranges:
  • de linux à linux, pas de soucis, ça fonctionne
  • de linux à windows, comme disait Garcimore, « des fois ça marche, des fois ça marche pas« . De Windows à linux, pas de soucis.
  • Je n’ai pas pu tester de windows à windows, je n’en ai qu’un en machine virtuelle ((et j’ai un peu la flemme d’installer windows dans une autre machine, vu le peu que je m’en sert))

De plus, on voit clairement que Venom est plutot un client linux, l’arborescence affichée dans la fenêtre d’enregistrement des fichiers est celle de gnome. Il faut vraiment tout dérouler pour accéder au bureau windows.

Conclusion et remarques en vrac

  • Pour le chat, pas de problème, ça fonctionne assez bien de linux à linux. De windows à linux, j’ai eu des soucis de pertes de messages après inactivité.
  • Pour l’échange de fichiers, linux à linux, pas de problème. De windows à linux non plus. Par contre, de linux à windows, c’est pas top.
  • Pour la visio, ce n’est pas encore implémenté dans les clients, seulement dans le coeur
  • Les clients sont en anglais, et il n’existe pas de fichier d’internationalisation.
  • Le client windows Qt-Gui consiste en un seul fichier exécutable, plus simple à utiliser, mais c’est dommage de l’avoir fourni dans un zip, d’autant qu’il ne fait que 14Mo. Mais bon, il ne fonctionne pas (messages perdus) et n’est qu’une version développeurs non aboutie.
  • Les problèmes que j’ai eu sous windows proviennent peut être du fait que mon W7 tourne sous virtualbox, et que vu qu’il me sert à faire toutes sortes de tests bizarres et risqués, il est peut être en vrac, mais comme peuvent l’être tous les windows que je dois remettre d’aplomb régulièrement.
  • Lors d’un échange de fichiers, les boutons pour enregistrer/annuler sont en blanc sur fond gris clais. Pas top, mais sur venom, tout peut se régler dans le css (/usr/share/venom/theme/default.css), à voir pour les autres.

tox_fichier

Bref, c’est un logiciel prometteur dont le développement est actif. Cependant, actuellement, seul le chat fonctionne et il est encore loin de pouvoir remplacer skype. A suivre et restester dans quelques mois.

rsync par Cron: permission denied

J’ai été confronté à un étrange problème sur certaines machines en Ubuntu 12.04 (precise) pour lequel je vous livre ma solution de contournement. Ce n’est pas transcendant, mais ça fonctionne en attendant d’en savoir plus ou de trouver une autre solution.An_rsync_Primer

S.O.S.s.h.

J’ai des dossiers que je synchronise avec ou depuis un serveur distant en utilisant rsync, principalement pour faire des sauvegardes. Ces commandes rsync sont intégrées dans des scripts que j’utilise depuis plusieurs années sans problème. Pour pouvoir éviter les problèmes de droits, ces scripts sont lancés par le cron du root.
La commande qui nous intéresse est de cette forme:
rsync -avP dossier/local manu@serveur:/dossier/distant/ > /tmp/monlog.log 2>&1

Et le root peut se connecter au serveur sans mot de passe par échange de clef ssh.

Or, depuis quelques temps, impossible de faire la sauvegarde. Les logs contiennent quelque chose comme ceci:

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]

Alors que lorsque le programme est lancé en root depuis un terminal, il fonctionne sans erreur! (Donc pas de problème de droits d’accès aux dossiers/fichiers)

Environnement variable ou Variables d’environnement

Le cron n’ouvre pas un véritable shell lorsqu’il lance une action programmée, et les variables d’environnement utilisées dans une console ne sont pas toutes présentes. C’est peut être l’une des raisons du problème.

Sur certains forums, on a parlé de SSH_AUTH_SOCK et de SSH_AGENT_PID, mais je n’ai pas réussi à les faire prendre en compte pour résoudre le problème…

Où est la clef?

Qu’importe, indiquons à ssh qu’on veut utiliser la clef qui nous permet de s’identifier sur le serveur

rsync -avP -e "ssh -l root -i /root/.ssh/id_rsa" dossier/local manu@serveur:/dossier/distant/ > /tmp/monlog.log 2>&1

Et? Pas mieux, toujours rejeté par le serveur…

Qui me parle ?

Comme les logs du serveur n’indiquaient pas d’informations utiles, il faut demander à rsync d’être plus bavard

rsync -avvvv -e "ssh -l root -i /root/.ssh/id_rsa" dossier/local manu@serveur:/dossier/distant/  > /tmp/monlog.log 2>&1

Du coup, ça donne quelques indications dans le log:

opening connection using: ssh -l root -i /root/.ssh/id_rsa -l manu serveur rsync --server -vvvvue.Lsf . /dossier/distant/
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).

Ahhhh! Pourquoi il me met un -l manu alors que je lui ai spécifié -l root ?
Eh bien je ne sais pas, mais c’est la source du problème: identifié en tant que manu, il ne peut donc plus accéder à la clef ssh du root.

Comme je suis vicieux et mauvais perdant, j’ai essayé d’accéder à la clef de manu:

rsync -avvvv -e "ssh -l root -i /home/manu/.ssh/id_rsa" dossier/local manu@serveur:/dossier/distant/  > /tmp/monlog.log 2>&1

Et ça marche! Parce que le root peut entrer partout et lire les clefs de tous les utilisateurs (et surtout parce que manu aussi peut s’identifier en ssh sur le serveur sans mot de passe)

Et les droits d’accès aux dossiers ? Pas de problème, c’est toujours root (par l’intermédiaire du cron) qui lit les fichiers, mais il n’utilise pas sa propre clef et se fait passer pour manu dans le rsync.

Carpe diem

Pour résumer:

  • Plein de personnes ont rencontré le même problème, mais aucune solution proposée n’a fonctionné pour moi
  • Tout se passe comme si rsync refusait d’utiliser la clef du root
  • On peut utiliser la clef de n’import quel utilisateur, tant qu’il peut accéder au serveur. Au besoin, créer un utilisateur dédié.
  • C’est pénible, il faut que je modifie mes scripts qui me permettaient d’unifier la méthodologie
  • Bug ou pas bug ? Je ne sais pas.
  • Résolu? Je ne suis pas sûr. J’aimerai comprendre pourquoi sur certaines installations ça fonctionne, et pas sur d’autres, d’autant que j’essaye d’avoir des configurations logicielles le plus identiques possibles pour en simplifier la gestion.

En tous cas, si vous avez des infos sur ce changement de comportement, ou sur le moyen de fonctionner à l’ancienne mode, n’hésitez pas à laisser une bafouille.

Nautilus: ouvrir avec le bon logiciel les extensions des programmes

Je sais, le titre n’est pas très clair, mais ça facilitera le travail aux moteurs de recherche…the-nautilus-ii-table-by-marc-fish-05

Il arrive que l’on ait installé des programmes générant des fichiers avec une extension propre à ces programmes, mais que l’accès direct (par double clic par exemple) ouvre le fichier avec un autre logiciel qui n’est pas celui escompté. Pourtant, le programme est bien installé et fonctionnel, mais l’association n’est pas effectuée correctement, et il n’est pas possible de la faire graphiquement.

Dans mon cas, j’ai installé sous Unity Qt4-designer qui fabrique des fichiers avec l’extension .ui mais qui est un programme prévu pour KDE. Or, quand je double clique sur le fichier .ui généré par le programme, c’est firefox qui s’ouvre pour me proposer de télécharger le fichier. Pourtant, dans le menu contextuel, ouvrir avec me propose bien Qt4-designer.

Qu’importe, me dis-je, il suffit d’aller dans les propriétés du fichier, onglet ouvrir avec, et de lui associer le bon logiciel. Sauf que le programme voulu (Qt4-designer) n’apparaît pas dans la liste!

Diable! Pourquoi?

Après quelques (heures de) recherches, c’est simple, encore faut-il le savoir. Le lanceur n’intègre pas la fonction d’ouverture de fichier, et par conséquent Nautilus ne l’affiche pas dans la liste des programmes disponibles.

Corrigeons cette erreur monumentale immédiatement.

Pour tous les utilisateurs du système

Éditez par le moyen de votre choix (avec sudo) le fichier /usr/share/applications/designer-qt4.desktop et modifiez la ligne indiquée ci dessous de

Exec=/usr/bin/designer-qt4

à

Exec=/usr/bin/designer-qt4 %f

Notez le « %f » qui indique que c’est le fichier transmis (celui sélectionné) qu’il faudra ouvrir. Il faudra peut être vous déloguer/reloguer pour que cela soit pris en compte, mais je ne suis même pas sûr que ce soit nécessaire. Retournez dans les propriétés du fichier .ui et vous devriez avoir le programme voulu dans la liste des choix disponibles.

Pour un utilisateur particulier

Admettons que je veuille que cette association ne soit valable que pour l’utilisateur manu. Il me suffit de copier le lanceur de qt4-designer dans le dossier ~/.local/share/applications et d’effectuer la modification indiquée ci dessus dans le fichier que je viens de copier.

cp /usr/share/applications/designer-qt4.desktop /home/manu/.local/share/applications/
gedit /home/manu/.local/share/applications/designer-qt4.desktop

Plus besoin du sudo dans le cas précis, puisque le fichier est dans mon dossier personnel. Ça fonctionne pour tous les logiciels et toutes les extensions, à condition qu’il existe un fichier .desktop dans le dossier des applications.

C’est une bricole, mais ça empoisonne la vie quand le comportement n’est pas celui attendu. En espérant que ça puisse vous servir.

Faire un miroir avec apt-mirror de raspberry.org

Je ne vais pas vous réexpliquer comment faire un miroir local, mais comment arriver à faire un miroir pour le raspberry Pi.

Si vous essayez d’utiliser apt-mirror sur une version plus ancienne que Quantal, vous aurez une erreur disant que apt-mirror ne peut localiser le dépôt arm (binary-arm/Packages.gz). Or, il devrait chercher armhf (binary-armhf/Packages.gz)!

Il suffit d’aller modifier /usr/bin/apt-mirror avec un éditeur quelconque pour modifier la ligne 269 ainsi:

remplacer

if($config_line =~ /deb-(alpha|amd64|armel|arm|hppa|hurd-i386|i386|ia64|lpia|m68k|mipsel|mips|powerpc|s390|sh|sparc)/) {
par

if($config_line =~ /deb-(alpha|amd64|armel|armhf|arm|hppa|hurd-i386|i386|ia64|lpia|m68k|mipsel|mips|powerpc|s390|sh|sparc)/) {

en fait, on rajoute armhf avant arm, afin qu’il ne s’arrête pas sur la première correspondance, qui serait incomplète.

Sauvegardez, et ajoutez ensuite dans le fichier /etc/apt/mirror.list la ligne suivante:

deb-armhf http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi

Il ne vous reste plus qu’à lancer apt-mirror pour créer votre miroir local et accélérer le téléchargement des paquets de votre Raspberry Pi.

Clonezilla: résoudre l’erreur « not a mounting point »

Clonezilla est un système très pratique permettant de prendre l’image d’un système et de la réinstaller sur un autre ordinateur (ou sur le même). Je m’en sers régulièrement avant des manipulations dangereuses pour le système, pour avoir la certitude de pouvoir revenir à l’état initial au besoin. Ou pour transférer un système vers un autre disque.

Je sauvegardais mes images sur le réseau, à l’endroit proposé par défaut dans le live CD, sur /home/partimag. Mais la partition home devenant remplie, j’ai déplacé les sauvegardes dans un nouveau disque sur le serveur, et j’ai créé un lien de /home/partimag pointant vers /stockage/partimag.

Erreur. Depuis ce jour, le message  « Clonezilla image home directory /home/partimag is not a mounting point! Failed to mount other device as /home/partimag! » venait gâcher le plaisir que j’avais à utiliser ce logiciel, sans trop savoir pourquoi.

La réponse est que sshfs a des problèmes avec les liens symboliques et qu’il n’arrive pas à accéder au contenu du lien. La solution consiste à monter le dossier des sauvegardes de partimage à l’endroit attendu avec la ligne de commande suivante dans le fstab

/stockage/partimag /home/partimag auto bind 0 0

Assurez vous de créer le dossier /home/partimag puis montez le dossier des sauvegardes au bon endroit avec
mount -a
L’utilisation de clonezilla redevient identique à celle d’avant, et surtout fonctionnelle.

Quand à savoir pourquoi tenir à utiliser /home/partimag au lieu de taper l’adresse du dossier de sauvegarde, c’est qu’il est plus simple de taper sur entrée que de taper le chemin quand le clavier est accidentellement en qwerty…

D’ailleurs, j’aimerais modifier le liveCD afin d’intégrer mes clefs et personnaliser certaines opérations, mais je n’arrive pas à faire quelque chose de fonctionnel. Si vous avez des pistes ou des tutos (autre que celles du site de clonezilla), je suis intéressé.

Ubuntu-tweak est mort. Vive ubuntu-tweak?

Le logiciel bien connu de customisation d’Ubuntu, à mon avis vital depuis le passage à Unity, n’est plus.

L’auteur vient d’annoncer aujourd’hui sur son blog arrêter le développement de ce logiciel. S’il ne donne pas de raison particulière, il dit que ce projet commencé dans l’enthousiasme le rend désormais malheureux et que « si faire du logiciel libre n’est plus gratuit, pourquoi continuer à en faire? » .

C’est vraiment dommage à mon avis.

Le logiciel fonctionne toujours pour la partie customisation, au moins jusqu’à la 12.10, mais l’onglet Application ne fonctionnera plus, vu qu’il s’agissait d’un web service.

Ceci dit, comme tous les projets open source, rien n’empêche qu’il renaisse prochainement de ses cendres, repris par une autre communauté. Longue vie à Ubuntu-tweak et merci au développeur.

Mise à jour: au vu des messages de soutien, l’auteur a décidé de reprendre le développement.

SSHplus: le SSHmenu pour unity

S’il est un outil dont je ne pourrais me passer et qui freinait considérablement mon passage à unity, c’est bien sshmenu. Une fois paramétré, j’ai sous la main en quelques clics l’accès ssh aux machines que je gère.

Autant lorsqu’on n’en a que quelques unes ça peut rester gérable à la main, autant quand on en a plus d’une trentaine, c’est impensable de ne pas utiliser un outil dédié.

Malheureusement, sshmenu ne fonctionne pas avec unity. Heureusement, il existe un autre logiciel qui permet de faire la même chose et même plus, c’est SSHplus.

Le seul petit point négatif, c’est que le paramétrage se fait pour l’instant en éditant le fichier de configuration, pas avec une interface graphique. Gageons cependant que ce n’est qu’une question de temps avant que ce ne soit corrigé.

Les fonctionalités

  • Lance SSH, rdesktop, et presque n’importe quelle commande ou application
  • Compatible avec le menu de configuration de sshmenu
  • Supporte les dossiers imbriqués (mais pas encore ceux importés depuis sshmenu)

Je n’ai pas testé l’import depuis le fichier de configuration de sshmenu puisque j’en ai profité pour faire du rangement dans mes entrées, et j’ai réécrit le fichier de configuration, ce qui m’a permis de me faire la main sur son fonctionnement.

Installer SSHplus

  • Téléchargez la dernière version sur le repo github
  • Copiez le dans /usr/local/bin
  • Ajoutez lui les droits en exécution par un chmod +x /usr/local/bin/sshplus.py
  • Lancez sshplus.py ou mettez le dans vos applications au démarrage
  • Éditez le fichier de configuration ~/.sshplus comme indiqué ci dessous

La configuration

Quelques infos rapides avant de commencer:

  • Les lignes commençant par le caractère # sont ignorées (commentaires). Ne placez pas de commentaire à la suite de lignes indiquant des commandes
  • Les espaces en début de ligne sont ignorés. Vous pouvez indenter pour que le fichier soit plus clair
  • Les lignes vides sont ignorées (il n’y en a pas dans mon fichier d’exemple à cause de wordpress qui ne sais plus reconnaitre la fin du code)
  • L’instruction sep ajoute un séparateur dans le menu

Les instructions du fichier de configuration ~/.sshplus

C’est très simple, elles se présentent sous la forme NOM | COMMANDE | ARGUMENTS. Ainsi, pour ouvrir un terminal avec la commande « top », il suffit d’ajouter l’instruction suivante:

Afficher top|gnome-terminal|-x top

Pour lancer firefox sur le site des astuces d’absolacom:

Astuces d'Absolacom|firefox|http://astuces.absolacom.com

Accéder à un dossier local (la structure est la même utilisée dans le fichier ~/.gtk-bookmarks)

Dossier temporaire|nautilus|file:///tmp

ou distant

Dossier distant|nautilus|sftp://manu@192.168.10.214

A partir de là, vous voyez que c’est simple de faire ce qu’on veut. Ne reste plus qu’à savoir quoi y mettre, mais si on ne trie pas, c’est vite le bazar et il est impossible de s’y retrouver.

Menus et Sous menus

On peut heureusement créer des sous menus de façon aussi simple: il suffit d’utiliser l’instruction folder:label pour donner un nom à votre dossier, et l’instruction folder: pour remonter d’un niveau et « fermer votre dossier ».

Exemple de fichier de configuration

Je vous donne ci dessous un exemple de fichier de configuration ((fichier fourni par le développeur et adapté par mes soins)). Attention, rien n’est fonctionnel dans le sens ou les adresses et les identifiants sont fantaisistes. A vous d’adapter à votre besoin.

# Lanceurs d'application dans un dossier
folder:Applications
Show top|gnome-terminal|-x top
Dossier distant|nautilus|sftp://manu@192.168.10.214
# Un sous dossier
folder:Absolacom
Astuces d'Absolacom|firefox|http://astuces.absolacom.com
folder:
folder:
#sep ajoute un séparateur
sep
# label: Ajoute un label aux menus
label:Connexions SSH
SSH server1|gnome-terminal|-x ssh root@google.com
SSH server2|gnome-terminal|-x ssh -p 456 manu@192.168.10.23
sep
# Utilise rdesktop pour se connecter à des postes windows
label:Connexions RDesktop
Win-Server 1|rdesktop|-T “Win-Server 1″ 1.2.3.4
Win-Server 3 (with many arguments)|rdesktop|-g 1320×680 -T “Win-Server 3″ -x l -P -r sound:local 1.2.3.6
sep
label:Connexions Putty
# PuTTY
PuTTY-Session 1|putty|-load SavedSession1
PuTTY-Session 2|putty|-load SavedSession2
#Si un fichier de connexion sshmenu est présent, il sera ajouté automatiquement

Comme vous le voyez, c’est simple d’usage et tellement pratique.

Edit du 24/08/12

Je modifie cet article pour apporter deux petites informations.

Tout d’abord, si vous mettez un underscore dans le nom de votre raccourci, vous pourrez avoir un accès rapide en appuyant sur la lettre correspondante. Par exemple, prenons la ligne PuTTY-Session 2|putty|-load SavedSession2 du fichier ci dessus, si je la note Pu_TTY-Session 2|putty|-load SavedSession2 dans mon fichier de configuration, je pourrais lancer ce raccourci en appuyant sur la touche « T ». Pas primordial, mais pratique, d’autant que je n’ai trouvé cette info nulle part, mais en bidouillant.

Ensuite, j’ai eu besoin de transformer un fichier de conf de sshmenu vers sshplus avec des dizaines d’entrées. Impossible d’utiliser le fichier d’origine dans sshplus, il ne me le prenait pas. Étant donné qu’il n’était pas question que je refasse tout à la main dans le cas présent, j’ai écrit un petit programme python pour le convertir. Il fonctionne comme suit en ligne de commande:

  • Sans argument, il va chercher le fichier ~/.sshmenu. S’il ne le trouve pas, le programme s’arrête.
  • En précisant sur la ligne de commande le chemin vers le fichier à transformer on peut préciser le fichier à utiliser. S’il ne le trouve pas, le programme s’arrête.
  • Le résultat converti est affiché dans le terminal. Une fois validé, on peut le rediriger vers un fichier (en général ~/.sshplus)
  • Le programme essaye de récupérer l’organisation des sous dossiers de sshmenu, mais il a des soucis avec les sous-sous-sous-…dossiers. Au pire, il ne vous restera plus qu’à placer les « folder: » au bon endroit. C’est plus rapide que de le faire manuellement quand on a beaucoup d’entrées.

Téléchargez le fichier sshmenu2sshplus , renommez le en « .py » ((wordpress ne me laisse pas les monter en py)), rendez le exécutable et lancez le en lui précisant l’emplacement vers votre fichier .sshmenu, et redirigez la sortie vers votre fichier sshplus. Par exemple:

./sshmenu2sshplus.py /tmp/.sshmenu >> ~/.sshplus

Ubuntu: system halted ou le poste ne s’éteint pas

L’ordinateur ne s’éteint pas

J'ai dit halte!
Depuis ubuntu 11.04 ((il me semble)), un problème récurent se produit: lors d’une demande d’arrêt, le poste reste sous tension et un message indique laconiquement:

*Will now halt
[...] System halted

C’est d’autant plus embêtant que parfois la commande entrée manuellement dans un terminal fonctionne sans provoquer ce problème, mais que dans un script ou avec certains logiciels, le système ne se coupe pas. Et si le système n’est pas coupé, impossible de démarrer les postes par wake on lan!

J’avais écrit à ce sujet en donnant une solution de contournement qui ne fonctionnais pas systématiquement non plus…

A noter que ce problème apparait lors d’une mise à jour ou d’une installation neuve, quelle que soit la distribution basée sur ubuntu (voyager, mint, Xubuntu, …)

Je suis tombé sur l’explication de Steve Langasek (vorlon) sur bugs.launchpad qui éclaire ce problème:

Ok, j’ai travaillé à ma façon sur toutes les formes de ce bug maintenant, et je dois conclure que ce comportement ne peut pas / ne devrait pas changer.

– La commande «shutdown» a trois options: « -h » (arrêt ou mise hors tension), ‘-H’ (arrêt), et «-p» (hors tension).
– La commande «halt» fait référence à -H,  par défaut.
– La commande «poweroff» fait référence à -p, par conception.
– La configuration de /etc/default/halt affecte *uniquement* le comportement lorsque ni -H ni -P n’a été spécifié.
– Il n’y a pas moyen de faire «halt» correspondre par lui-même à «poweroff», sans qu’il soit impossible de faire un véritable «arrêt».
– Ce sont toutes des options standard qui ne devraient pas être changé.

Donc, je ferme ce rapport de bug comme «wontfix». Le comportement actuel est incompatible avec le comportement arriviste précédent, mais ce comportement était bogué. Le comportement actuel est correct, et je crains que les gens vont juste devoir apprendre que «halt» ne signifie pas ce que vous avez été amené à croire que cela signifie.

Si vous voulez que le système se coupe, vous avez besoin pour fonctionner soit de « shutdown -h now», «halt -p», ou «poweroff». Toutes ces trois commandes fonctionnent. «halt -p» est la plus courte et probablement la plus compatible avec la mémoire musculaire existante.

Même si le ton est un peu hautain à mon goût ((pour les pauvres utilisateurs perturbés que nous sommes, et vraiment nombreux au vu des pages complètes de google à ce sujet)) , il est logique de comprendre que « halt » arrête le système informatique ((ce qu’il fait d’ailleurs très bien comme le prouve le message « system halted »)) et que « poweroff  » coupe l’alimentation matérielle.

Le problème est que pendant des années nous avons appris à utiliser « halt » plutôt que « shutdown -h » ou « poweroff » et qu’il nous semble que ce nouveau comportement est un bug, alors que c’est l’ancien comportement qui était anormal. Il va falloir commencer à changer certaines habitudes…

On peut contourner ce comportement en modifiant les aliases (alias halt= »halt -p ») mais c’est à faire pour tous les utilisateurs et ne fonctionne pas pour les scripts ou programmes qui ne lancent pas un shell.

De plus, sur la 10.04, vous constaterez que « halt » est un lien vers la commande « reboot »… D’autant plus surprenant que « reboot » fonctionne…

Eteindre ubuntu ET l’ordinateur

Note: la solution proposée par chmd dans les commentaires est en effet plus propre et conseillée.

Je me trouve confronté à des logiciels écrits il y a quelques années qui font appel à la commande halt et à qui je peux difficilement expliquer ((pour diverses raisons…)) que c’est une mauvais habitude, mais une solution de comportement existe en interceptant la commande halt et en la renvoyant vers poweroff

  • renommez la commande halt en autre chose

sudo mv /sbin/halt /sbin/haltorig

  • Créez un programme /sbin/halt qui fera appel à « poweroff » ou « shutdown -h now »

#!/bin/sh
/sbin/poweroff

puis sudo chmod +x /sbin/halt

On retrouve ensuite un comportement « normal » ((le comportement attendu, à savoir une coupure propre, même s’il vaudrait mieux prendre la bonne habitude immédiatement)) du système.

Depuis quelques jours que je teste cette modification, je n’ai remarqué aucun effet de bord, ni graphiquement, ni sur le fonctionnement des autres programmes. À part que c’est un bonheur de pouvoir à nouveau éteindre ses machines par cron ou ssh et de pouvoir les relancer par WOL.

J’ai pensé que vous trouveriez cet article utile ;oD

Equivalent à CHKDSK sous Linux

Il est bien évident qu’à choisir un système de fichier mon choix premier ne se porterait pas sur les formats Microsoft. Cependant, l’interopérabilité fait que le choix ne nous est pas forcément disponible.

Surtout quand on me transmet un disque externe  en me disant « Tiens, voilà la sauvegarde, prends en soin c’est la seule » et que je me rends compte que le système de fichier est dans les choux… ((d’ici à ce qu’on vienne dire que c’est parce que j’ai osé le brancher sur un Linux, il n’y a qu’un pas qui a déjà été franchi depuis longtemps!)).

Sueurs froides, tremblement, méditation et incantations :d plus tard, voici ce que ça donne.

Partitions FAT

Certains appareils (lecteur DVD, décodeur TNT, autoradio ou systèmes propriétaires) n’acceptent que les lecteurs externes au format VFAT. Or, quand il y a des problèmes sur la partition et qu’on veut la corriger, c’est dommage de ne garder un windows que pour ça.

Heureusement, le paquet dosfstools possède la commande dosfsck qui permet de le faire:

sudo dosfsck -a -t -w /dev/sdc1

Cette commande va nous permettre de vérifier le disque /dev/sdc1 en réparant automatiquement les erreurs sans confirmation (-a), en marquant les mauvais secteurs comme tels (-t) et en le faisant immédiatement (-w). Vous pouvez aussi ajouter les options -n (à la place de -w) pour simplement tester, -l pour afficher la liste des fichiers traités et -v pour avoir plus de sortie à l’écran.

Démontez votre disque sans le retirer avant de lancer la commande, mais dans les cas où je l’ai utilisée, le disque ne montait pas de lui même.

Partitions NTFS

Je n’ai pas trouvé de commande permettant de le faire. Si vous en connaissez une, je suis preneur.

La commande ntfsfix du paquet ntfsprogs permet de faire certaines réparations simples, mais pas une véritable vérification. Comme le dit le man:

ntfsfix est un utilitaire qui permet de résoudre certains problèmes NTFS communs. ntfsfix N’EST PAS une version Linux de chkdsk. Il répare seulement certaines incohérences fondamentales du NTFS, réset le journal NTFS et programme une vérification du système de fichiers au prochain boot de Windows.

Cependant, on peut s’en sortir sans avoir windows installé, simplement avec le CD d’installation (exemple pour XP) ((même si ça pique les yeux, tout ce bleu)):

  • démarrez un ordinateur où le disque est branché depuis le CD d’installation
  • Dans les choix qui vous sont donnés, choisissez R pour réparation
  • Quand vous êtes dans la console de réparation, lancez la commande CHKDSK C: /R. Si un seul disque est présent, vous pouvez omettre de le nommer.

Si vous n’avez pas le CD d’installation de windows, vous pouvez télécharger Revovery Console (RC.iso) fourni par The computer paramedic qui contient des outils de réparation et l’utiliser comme dans la méthode donnée ci dessus. Notez que si vous avez eu un ordinateur sans CD d’installation, il est utile de le télécharger pour l’avoir sous la main, y compris pour réparer le MBR

Pour Vista et Seven, la méthode est approximativement la même, même si elle n’apporte rien de plus. Démarrez avec votre DVD d’installation et adaptez la méthode à ce qui vous est proposé. Vous pouvez aussi consulter cette page même si l’accès aux consoles de réparation est devenu payant pour des problèmes de licences Microsoft ((Obligé de payer des licences à Microsoft pour permettre de réparer leur système… Comme quoi c’est un business de leur part, pas un bug. Encore un bonnet d’ÂNE mérité.)) depuis Aout 2011.

Ubuntu 11.10 (Oneiric) ne s’arrête pas

Sur certains ordinateur, avec Oneiric, l’ordinateur ne s’arrête pas véritablement. L’ordinateur reste sous tension, même si le système est coupé.
Il est alors nécessaire de faire un réset manuellement, ce qui peut être gênant quand l’ordinateur n’est pas accessible.
Cela peut se produire autant lors de la demande d’arrêt que pour celle du redémarrage. Parfois cela fonctionne depuis le gestionnaire de fenêtre, parfois non. La commande « halt » en ligne de commande ne fonctionne pas, elle ((2 machine différentes, même OS, comportement différent. Même avec des systèmes différents (ubuntu/voyager) )) .
Je n’ai pas trouvé de solution, et des rapports de bug ont été ouverts, et on en parle sur beaucoup de forums ((par exemple ici ou ))  mais en attendant, il faut bien pouvoir agir.

J’ai trouvé une solution de contournement qui permet d’effectuer ce qui est véritablement désiré et qui fonctionne sans problèmes.
Créez un script /usr/bin/force_halt et mettez y ce code dedans:

#!/bin/bash
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

Rendez le exécutable et remplacez vos appels à « halt » par « force_halt« . Vous pouvez aussi remplacer /sbin/halt par un lien vers force_halt

Concernant le reboot, il faut répéter les mêmes opérations mais remplacer le Stop de la fin de la ligne de commande par Restart

Ubuntu: faire fonctionner la carte Ethernet Atheros AR8151

Ethernet controller [0200]: Atheros Communications AR8152 v2.0 Fast Ethernet [1969:2062] (rev c1)

Les derniers pilotes Athéros ne sont pas disponibles. Le serveur semble down ou cassé, mais il est possible d’installer les drivers pour faire fonctionner cette carte réseau grâce à un forum allemand.

Installons d’abord les éléments nécessaires

sudo apt-get install --reinstall linux-headers-$(uname -r) build-essential

Nous allons ensuite installer DKMS pour installer le module

sudo apt-get install --reinstall linux-headers-$(uname -r) build-essential dkms        # s'ils ne sont pas déjà installés
## Pour Ubuntu 10.04
wget http://media.cdn.ubuntu-de.org/forum/attachments/2666793/AR81Family-linux-v1.0.1.14_dkms.tar.gz
sudo tar xvf AR81Family-linux-v1.0.1.14_dkms.tar.gz -C /usr/src
 
# Pour Ubuntu 10.10 et supérieur
wget http://media.cdn.ubuntu-de.org/forum/attachments/2666793/AR81Family-linux-v1.0.1.14_10.10.tar.gz
sudo tar xvf AR81Family-linux-v1.0.1.14_10.10.tar.gz -C /usr/src

Création du module et installation

sudo dkms add -m atl1e -v 1.0.1.14
sudo dkms build -m atl1e -v 1.0.1.14
sudo dkms install -m atl1e -v 1.0.1.14

Chargement du module et test

sudo modprobe atl1e
dmesg | egrep 'atl1e|eth'
ifconfig -a

Malheureusement, l’archive pour 10.10 et supérieurs n’est plus disponible sur ce site. Je met donc au moins l’archive pour 10.04 à disposition sur le mien au cas où elle disparaitrait

AR81Family-linux-v1.0.1.14_dkms.tar

Source: http://forum.ubuntuusers.de/topic/lan-geht-nicht-wlan-schon/#post-2666793

Activer XDMCP sur Ubuntu Lucid 10.04

Cette astuce fonctionne peut être avec les versions suivantes, mais je ne l’ai pas testée. A confirmer.

Si vous avez besoin d’utiliser XDMCP sur votre réseau, vous constaterez qu’avec la « nouvelle » version de GDM, il n’est plus possible de l’activer facilement ((en tout cas, pas aussi facilement qu’avant)).

Or, il suffit de quelques manipulations pour la remettre en place.

Paramétrer le serveur XDMCP

Tout d’abord, il faut créer le fichier /etc/gdm/custom.conf qui va enregistrer les options de GDM, et en particulier celles concernant XDMCP.

Remplissez le avec ceci:

[daemon]
 User=gdm
 Group=gdm
[security]
 DisallowTCP=true
[xdmcp]
 Enable=true
 DisplaysPerHost=2
 HonorIndirect=false
 MaxPending=4
 MaxSessions=16
 MaxWait=30
 MaxWaitIndirect=30
 PingIntervalSeconds=60
 Port=177
[greeter]
[chooser]
 Multicast=false
[debug]
 Enable=false

Il suffit ensuite de redémarrer le service GDM pour activer le XDMCP.

service gdm restart

Cependant, si vous avez désactivé IPV6 sur votre réseau, cela ne fonctionnera pas, puisque XDMCP écoute par défaut en IPV6 désormais. Vous pouvez le voir en root avec la commande netstat:

root@test4:/home/manu# netstat -putan|grep 177
udp6       0      0 :::177        :::*        646/gdm-binary

Il faut alors désactiver IPV6 sur l’ordinateur qui diffusera son affichage, par exemple en le désactivant au niveau du noyau.

On peut le faire en rajoutant une option au fichier de configuration de grub. Modifiez les fichier /etc/default/grub pour ajouter l’option « ipv6.disable=1 »

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"

Reconstruisez le fichier de configuration de grub par « sudo update-grub » puis redémarrez votre ordinateur. Netstat vous indique alors que XDMCP écoute en IPV4 ((notez le 6 qui a disparu et la notation des adresses))

root@test4:/home/manu# netstat -putan|grep 177
udp       0      0 0.0.0.0:177        0.0.0.0*        658/gdm-binary

Utiliser le client XDMCP

On peut utiliser Xming depuis Windows, mais depuis Linux, il est plus simple d’utiliser tsclient. Dans la liste des protocoles, si vous ne voyez pas XDMCP, c’est qu’il vous faut l’installer le paquet xnest

sudo apt-get install xnest

tsclient avec XDMCPEnsuite, pour la connexion, c’est du classique.

Un client XDMCP en console

Si vous désirez lancer une session XDMCP systématiquement, il est inutile se charger gnome ou un gestionnaire de fenêtres simplement pour lancer tsclient puis votre session XDMCP. Il est possible de lancer celle ci directement.

Désactivez le lancement de GDM, puis logguez vous sur l’ordinateur et tapez la commande suivante:

/usr/X11R6/bin/X -query 192.168.1.2

où 192.168.1.2 est le serveur sur lequel vous avez activé XDMCP.

Sources:

Tftpd-hpa sur Lucid (erreur TFTP open timeout)

La mise à jour du programme tftpd-hpa sur lucid modifie son fichier de configuration par défaut. Si vous utilisez des clients légers avec LTSP, vous vous retrouvez avec des clients qui s’arrêtent à l’erreur PXE: TFTP open timeout juste après avoir obtenu leur adresse IP du dhcp.

Avant, votre fichier de configuration était ainsi:

root@ltsp:#cat /etc/default/tftpd-hpa
#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"

Or, maintenant, le fichier se présente ainsi:

# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS=""

Du coup, le serveur ne se lance plus (il n’apparait pas dans les processus) même si vous avez un message disant qu’il est déjà en cours de fonctionnement lorsque vous tentez de le relancer.

Il suffit alors de modifier votre fichier de la manière suivante:

# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

Relancez ensuite votre serveur tftpd et vos clients devraient démarrer.

Si vous avez utilisé des outils qui paramètrent automatiquement le fichier de configuration avec l’ancienne version, réinstallez le paquet pour obtenir le nouveau fichier de configuration:

sudo apt-get install --reinstall tftpd-hpa

puis effectuez manuellement les modifications.

Changer la couleur de fenêtre de Pidgin

J’ai eu besoin de communiquer par IRC sur un chan particulier, mais j’ai été confronté à un problème auquel je ne m’attendais pas: les administrateurs utilisant mirc (qui utilise par défaut un fond noir), ou irssi (qui fonctionne en console…noire de base) avaient choisi d’avoir des couleurs de polices blanches et jaunes pour certains éléments.

Or, Pidgin utilise un fond blanc, ce qui fait que beaucoup de choses étaient illisibles ((et effectuer des sélections du texte pour arriver à le lire est fatiguant à la longue.)).

Empathy permet de changer les thèmes, et de voir les messages écrits en noir sans tenir compte de la couleur d’origine, mais ne m’affichait pas les personnes présentes dans le salon. Donc, il n’a pas été retenu comme solution.

Mais comme avec le libre, tout est faisable, et un simple changement de couleur devant être à ma portée, j’ai cherché comment modifier Pidgin, et j’ai fini par trouver.

Simple quand on le sait, mais quand on ne sait pas, c’est autre chose…

  • Tout d’abord, ne cherchez pas le dossier pidgin, mais bien purple, qui se trouve dans votre home (~/.purple)
  • Par défaut, pidgin utilise le thème GTK de votre environnement. Sinon, et seulement sinon, il crée un fichier gtkrc-2.0 dans le dossier ~/.purple.
  • Si vous utilisez un gestionnaire de fenêtre basé sur GTK et que vous ne voulez pas changer votre thème général, il faudra créer un fichier nommé gtkrc-2.0 dans le dossier ~/.purple qui apportera des modification à pidgin par rapport à votre thème général.
  • Vous mettrez dans ce fichier texte les informations que vous voulez selon la syntaxe que vous donne la FAQ de Pidgin.((si vous connaissez un peu le CSS, vous devriez comprendre comment fonctionne le fichier))

Dans mon cas, cherchant juste à modifier l’aspect des fenêtres, j’ai utilisé le code fourni:

# Create a style called "inverted" where the text and base (the base color behind the widget) are the reverse of typical.
style "inverted"
{
text[NORMAL] = "#FFFFFF"
base[NORMAL] = "#000000"
}
 
# Apply "inverted" to conversation entry box--where you type.
widget "*pidgin_conv_entry" style "inverted"
 
# Apply "inverted" to conversation history pane--where you read the conversation.
widget "*pidgin_conv_imhtml" style "inverted"

Après avoir relancé Pidgin, c’est tout de suite beaucoup plus lisible ((Il ne s’agit pas du chan qui m’intéressait, mais celui ci présente les mêmes caractéristiques et me sert d’exemple)).

Du texte en couleur, mais lisibleSources: http://developer.pidgin.im/wiki/Using%20Pidgin

Clavier qwerty sur Ubuntu Oneiric Ocelot

Après une install d’Oneiric sur une machine, je me suis retrouvé avec un clavier US dans l’environnement graphique et dans le gestionnaire de connexion lightdm.

J’ai bien sûr réglé le clavier avec les outils de gnome ((et de lxde puisque j’ai installé les deux environnements)) mais à chaque redémarrage, je me retrouvais en clavier qwerty au lieu de l’azerty voulu.

Après avoir longuement cherché , je suis tombé sur une discussion qui m’a donné la bonne solution.

Il faut aller consulter le fichier /etc/default/keyboard qui, s’il fait référence à un clavier US, est prioritaire sur les autres réglages.
Si c’est le cas, il faut reconfigurer le clavier pour corriger ce fichier et faire en sorte d’obtenir les bonnes touches

dpkg-reconfigure keyboard-configuration

Et suivre les instructions, ce qui devrait donner un résultat tel que celui ci:

# If you change any of the following variables and X is configured to
# use this file, then the changes will become visible to X only if udev
# is restarted. You may need to reboot the system.
 
# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.
 
XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT=""
XKBOPTIONS="lv3:ralt_switch,compose:rctrl"
 
# If you don't want to use the XKB layout on the console, you can
# specify an alternative keymap. Make sure it will be accessible
# before /usr is mounted.
# KMAP=/etc/console-setup/defkeymap.kmap.gz

J’ai perdu du temps à trouver la solution, espérons que ça vous sera utile.

Source: http://forum.ubuntu-fr.org/viewtopic.php?pid=6654251#p6654251

Pas de /var/log/messages sur Ubuntu Maverick/Natty

Sur Ubuntu Natty, j’ai eu la surprise de constater qu’il n’y avais pas de fichier /var/log/messages.

Cela vient du fait que les développeurs ont estimé qu’il était redondant avec les autres fichiers de logs, et ils ont décidé de ne plus l’activer.

…les journaux que vous recherchez sont dans /var/log/syslog. Cela a été une décision délibérée dans maverick pour réduire les chevauchements de log (tout ce qui est logué dans /var/log/messages a toujours été aussi enregistré dans /var/log/syslog ).

Or, certaines applications l’utilisent et se plaignent de ne pas le trouver. On peut le créer vide, mais il le restera. On peut aussi créer un lien vers /var/log/syslog.

Mais le mieux est de le réactiver. Il suffit d’éditer le fichier /etc/rsyslog.d/50-default.conf et de dé-commenter les lignes suivantes:

*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages

ensuite, redémarrez ou lancez

sudo restart rsyslog

Source: http://ubuntuforums.org/showthread.php?t=1728570

Hosts (reur et damnation), la ‘route’ sera longue…

J’ai découvert avec stupeur l’article de Génération Linux qui cite un article de TF1 expliquant comment et pourquoi  ((enfin, le pourquoi n’est pas très clair)) supprimer les fichier hosts d’un ordinateur sous linux (GNU/linux).

(Outre le fait que je suis en phase avec benjamin sur ce qu’il faut penser sur TF0) Je vais vous expliquer réellement à quoi il sert, et comment s’en servir un peu plus (vu que benjamin ne le fait pas). Et je vais le faire à un niveau d’explication qu’un lecteur de TF0 puisse comprendre. Mais je vous le dis tout de suite:

Ne supprimez pas votre fichier /etc/hosts!

Principe de fonctionnement

Lorsque vous voulez aller visiter le site de TF0 ((A publier des bêtises pareil, c’est eux qui vont me servir de cobaye, tant pis)) , vous allez taper l’adresse tf0.fr dans la barre d’adresse, pas leur adresse IP. Parce que c’est plus simple à se souvenir. Or, les ordinateurs communiquent entre eux avec l’adresse IP, parce qu’ils sont conçus comme ça ((et surtout parce que ça fonctionne, pas seulement pour enbêter les téléspectateurs de TF0)). Votre ordinateur va donc s’adresser à un service de DNS (domain name system (« système de nom de domaine ») qui va faire la correspondance entre l’adresse que vous connaissez, et l’adresse IP du site auquel s’adresser.

C’est un peu le GPS de l’informatique: vous connaissez l’adresse, il vous dit où ça se trouve. Et c’est comme ça pour TOUS les services réseau.

Mais, historiquement, (c’est à dire quand j’étais plus jeune non rien), les ordinateurs n’étaient pas connectés à internet. Ils n’étaient même parfois pas connectés du tout (( je sais, c’est l’horreur, la préhistoire…Incroyable mais vrai, ni wifi, ni 3G!)) mais les services réseau nécessitaient quand même d’avoir leur réponse même en l’absence de DNS.

Donc, les informaticiens ont décidé ((arbitrairement, je sais, mais les informaticiens sont comme ça)) d’utiliser un fichier qui ferait la correspondance entre un nom et une adresse IP. Et il faut bien admettre que ça marche! Et que c’est pratique! On le verra bientôt.

De plus, ce fichier étant local, la réponse est plus rapide que d’aller interroger un serveur chez votre FAI, même s’ils répondent assez vite.

Z’en ont de la chance, les linuxiens!

Ce système de fonctionnement n’est pas spécifique à linux, windows possède le même, inspiré de Unix lui aussi. C’est le fichier hosts que vous trouverez dans windows\system32\drivers\etc\hosts (pour XP)

Comparons un fichier hosts et un fichier hosts…:

hosts-linux

hosts-linux

hosts-windows

hosts-windows

Que remarque t-on?

  • Sous linux, on peut lire le fichier dans une console et c’est plus pratique,
  • Sous linux, on peut avoir de la couleur, et c’est beau,
  • Sous linux, on utilise le fichier hosts (en tout cas en ce qui me concerne) alors que sur windows il est là, mais atrophié et malheureux, sans pour autant être anémique vu qu’il a plus de commentaires que d’utilité.
  • Les deux sont identiques, au moins dans l’aspect. Une IP, un nom.

Comment se servir du fichier hosts?

Vu que le fichier est là, autant l’utiliser. Comme il est interrogé par défaut avant la résolution DNS, on peut le modifier et s’amuser.

Dans ce fichier, que vous devrez éditer avec les droits root, ajoutez la ligne suivante:

82.242.245.98          www.tf1.fr

Puis ouvrez votre navigateur pour aller sur www.tf1.fr. Vous constaterez que MON DIEU, MA SOCIÉTÉ VIENT DE PRENDRE POSSESSION DE TF1 ET NOUS SOMMES LES MAITRES DU MONDE!!!

Ah non, c’est juste que mon ordinateur croit que pour aller sur TF1, il faut se rendre à l’adresse Absolacom… ((/me retrouve un rythme cardiaque correct)).

Tiens, ça me donne une idée ((autre que pourrir les ordinateurs de mes collègues, c’est pour ça qu’il faut les droits root. Ah, on me souffle dans l’oreillette qu’avec windows on peut sans droits particuliers… A vérifier de votre côté.)): et si j’indiquais dans mon fichier hosts l’adresse de toutes ces vilaines publicités qui apparaissent sur mon ordinateur?

Eh bien, au lieu d’attendre des heures que google analytics veuille bien répondre avant de m’afficher la page, ou avoir des sites de casino, ou de jeunes filles slaves  voulant à tout prix chatter avec moi (( ce que je peux comprendre)) ou des sites voulant augmenter mon anatomie ((ce que j’ai du mal à comprendre)) , j’aurais une erreur, certes, mais je verrais le reste de ma page. Plus vite, mieux, plus agréable ((presque du Daf Punk)). Vous trouverez plein d’endroits qui vous donneront une liste à ajouter à votre fichier hosts en cherchant un peu sur le net.

Regardez dans mon hosts, la solution pour éviter le rickroll s’y est cachée: saurez vous la retrouver?

Comme je choisis le nom et l’IP à insérer, je peux aussi y indiquer mes machines locales. Ainsi, si je veux faire un ping ou un ssh sur mercure (un de mes postes), je peux le faire avec son IP ou le nom que je lui ai donné dans ce fichier. Pas besoin de DNS sur un petit réseau!

Cool! Je vais pouvoir mettre toutes les adresses de l’internet dans mon fichier hosts et je n’aurais plus besoin de DNS pour naviguer!

Oui, en principe. En pratique, quand ce fichier atteint une certaine taille, il génère l’effet inverse de celui recherché: c’est long à chaque requête.

Et puis c’est surtout la mise à jour qui est laborieuse. Imaginons que google change d’IP, vous ne pourriez plus atteindre leur site tant que vous n’aurez pas modifié le fichier hosts, ce qui est compliqué quand il y a beaucoup d’entrées.

Même pas peur! Et si je le supprime, mon fichier hosts, ça donne quoi?

Ça donne que TF0 pourra à nouveau afficher des pubs sur votre ordinateur. Mais ça va surtout mettre le b…l dans les services réseau qui vont vouloir s’adresser à localhost et qui n’auront plus l’IP correspondante ((je sais, mais c’est bête, un ordinateur)). Un certain programme ((que je ne citerais pas)) se rabat sur ‘localhost’ quand le site demandé ne répond pas (timeout) et repère l’adresse 127.0.0.1 pour passer le message disant qu’il y a un problème. Sauf que s’il n’y a plus le fichier hosts, il n’y a plus de 127.0.0.1 pour localhost, donc le programme est en timeout et se rabat sur localhost qui passe en timeout et le programme se rabat sur localhost qui…. ((comment ça, je l’ai déjà dit?))

Bref, que du bonheur grâce à TF0 ((et ses rédacteurs)).

Résumons un peu:

  1. Le fichier hosts n’a un rôle de filtrage du web que si on lui a demandé de le faire. Le supprimer n’apporterait qu’un comportement non désiré à ce niveau (sauf pour les publicitaires)
  2. Que l’adresse soit présente ou pas dans le fichier hosts, tant qu’un DNS est présent sur le réseau, et l’ordinateur paramétré pour l’interroger, on accèdera au site choisi.
  3. Le fichier hosts n’est pas inutile pour le fonctionnement même de l’ordinateur. Amusez vous à le supprimer sur windows, histoire de rigoler ((puis redémarrez en console, utilisez vi pour le recréer. Comment ça c’est pas possible?!?))
  4. Le fichier hosts n’est pas créé par votre FAI ou par les serveurs DNS. Il ne contient QUE ce que vous y mettez. Dans le cas contraire, ce serait inutile de le supprimer, puisqu’il serait recréé à chaque connexion. ((l’auteur confond sans doute avec le fichier /etc/resolv.conf))
  5. L’auteur ne sait pas lire un man, l’option -f de rm sert à ne pas avoir de demande de confirmation dans tous les cas, certainement pas à effacer un fichier protégé en écriture, qu’il soit protégé ou pas ((ça veut dire quoi, protégé? J’ai les droits ou pas de le supprimer?))

Conclusion

  1. TF0 fait une grande confiance à ses rédacteurs
  2. Le niveau linux chez eux  est le même que le niveau auquel je place leurs émissions
  3. Je vais me prendre un procès si je ne supprime pas leur nom dans mon article (checked)
  4. Faut pas toucher à mon linux quand je voulais dormir le dimanche matin mais que les moustiques m’agressent!

PS: supprimez la ligne que je vous ait fait ajouter au fichier hosts si vous voulez retourner sur TF1 et pas sur le site de ma société.

Désactiver le lancement de GDM sur Lucid

Sur l’une de mes machine, destinée à un usage spécifique dont je parlerais plus tard, j’avais besoin d’avoir une interface graphique pour l’installation et le réglage d’un logiciel particulier.

Mais une fois celui ci configuré, je souhaitais que GDM ne se lance plus, sauf à la demande. J’ai donc installé une version « desktop » puis j’ai cherché à désactiver GDM.

Or, si cela était évident (ou du moins connu) dans les versions précédentes, en supprimant le lien de lancement dans /etc/rc2.d ou avec update-rc.d, avec upstart c’est désormais différent.

Les programmes lancés au démarrage sont situés dans des fichiers de configuration placés dans /etc/init. Celui qui nous intéresse est gdm.conf.

Il faut modifier le fichier de la manière suivante:

de

# gdm - GNOME Display Manager
#
# The display manager service manages the X servers running on the
# system, providing login and auto-login services
 
description    "GNOME Display Manager"
author        "William Jon McCann &lt;<a class="linkification-ext" title="Linkification: mailto:mccann@jhu.edu" href="mailto:mccann@jhu.edu">mccann@jhu.edu</a>&gt;"
 
start on (filesystem
          and started dbus
          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
          or stopped udevtrigger))
stop on runlevel [016]
 
emits starting-dm
 
env XORGCONFIG=/etc/X11/xorg.conf
...

à

# gdm - GNOME Display Manager
#
# The display manager service manages the X servers running on the
# system, providing login and auto-login services
 
description    "GNOME Display Manager"
author        "William Jon McCann &lt;<a class="linkification-ext" title="Linkification: mailto:mccann@jhu.edu" href="mailto:mccann@jhu.edu">mccann@jhu.edu</a>&gt;"
 
start on []
#start on (filesystem
#          and started dbus
#          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
#          or stopped udevtrigger))
stop on runlevel [016]
 
emits starting-dm
 
env XORGCONFIG=/etc/X11/xorg.conf
...

Relancer ensuite l’ordinateur, GDM ne se lancera plus au démarrage, et vous pourrez alors vous connecter sur les consoles.

Ce n’est pas une astuce exclusive, mais j’ai perdu assez de temps à chercher la réponse que je le note pour savoir où le retrouver.

Ne vous affolez pas parce que vous serez en mode texte, vous verrez qu’on arrive à faire des choses sympas ensuite.

Par exemple, vous pouvez vous identifier avec votre mot de passe et lancer la commande startx pour lancer votre environnement graphique.

Dans un prochain article, nous verrons qu’il y a mieux…

Problème démarrage windows XP sur Virtualbox (intelppm)

virtualbox

virtualbox

J’ai eu un problème étrange avec un Windows XP pro lancé dans Virtualbox, et j’ai suffisamment cherché pour mettre la solution ici au cas où d’autres rencontreraient le même souci.

Ce windows fonctionnait très correctement jusqu’à ce que je change la machine physique sur laquelle il tournait dans Virtualbox. Sur le nouvel ordinateur, plus puissant et plus « gonflé » en RAM, windows arrivait à l’écran d’identification puis rebootait immédiatement. Ou se figeait.

Une autre image de windows fonctionnait, elle, correctement. Par contre, celle ci ne demandait pas à l’utilisateur de s’identifier, on arrivait directement sur le bureau.

Après avoir modifié le mode de connexion, le même problème que pour la première image se présentait.

Pour les deux images, le mode sans échec fonctionnait et me permettait d’accéder au système.

J’ai donc essayé de modifier le mode d’identification afin que l’ouverture soit automatique (et profiter d’une définition plus grande permettant d’afficher les fenêtres dans leur totalité), mais impossible. Une fois que l’utilisateur devait s’identifier, le problème apparaissait et impossible de revenir en arrière.

Et trouver des infos sur le net avec ces symptômes, c’est mission impossible, vu que des pannes de windows, il y en a plein qui donnent le même résultat…

J’ai donc été modifier l’option indiquant à windows de ne pas redémarrer en cas d’échec afin d’avoir l’écran bleu permettant d’avoir quelques informations supplémentaires (clic droit sur le poste de travail, Propriétés, Onglet Avancé, Démarrage et récupération -> Paramètres, puis décocher redémarrer automatiquement)

Et le BSOD m’a indiqué un problème avec Intelppm.

BSOD intelppm

BSOD intelppm

Une recherche sur le net m’a conduit sur la page d’un blog msdn qui dit:

Dans certaines circonstances avec un système d’exploitation Windows XP / 2003 – intelppm.sys et processor.sys peuvent bloquer une machine virtuelle fonctionnant sous Virtual PC / Virtual Server (ce qui invite le système d’exploitation Windows invité à redémarrer automatiquement – mais si vous avez modifié ce paramètre, vous verrez un écran bleu). La raison de ce crash est que ces pilotes tentent d’effectuer une opération non gérée à l’intérieur de la machine virtuelle (comme la mise à niveau du microcode des processeurs physiques, en changeant l’état d’alimentation du processeur physique).
Aujourd’hui, ce problème se produit uniquement sur les Centrino et processeurs AMD K8. La plupart des gens voient ce problème quand ils déplacent une machine virtuelle qui a été créé sur un autre type de processeur pour un ordinateur exécutant l’un de ces types de processeurs…

Ça parle de Virtual Server (de Microsoft), mais avec Virtualbox, c’est la même chose. Ça provient donc d’un problème de Windows. Et le problème peut se produire avec Processor, pas seulement Intelppm.

La solution est simple:

Si vous voyez ce problème à plusieurs reprises vous pouvez désactiver manuellement ces pilotes (avec aucun effet secondaire négatif) en allant à l’emplacement suivant dans le Registre:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Processor
Ou
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Intelppm
et changer la valeur de ‘Start’ à 4.

Dans le même temps nous avons fait quelques changements subtils à la façon dont notre matériel expose le processeur dans Virtual Server R2 de sorte que dans les futurs produits, ces pilotes ne devraient jamais être chargés à l’intérieur des machines virtuelles.

Ouf, je suis rassuré! Virtual Server ne sera plus bloqué par ce comportement, mais peut être que Virtualbox continuera à l’être. Donc, ça peut toujours servir de connaitre le truc pour s’en sortir.

Sources:

Voir l’occupation des dossiers avec NCDU

Vous connaissez certainement Baobab, qui permet de naviguer rapidement dans le système de fichier pour trouver quel est le dossier ou le fichier qui prend tant de place (( L’équivalent pour windows est WinDirStat )).

Mais quand on se trouve sur une machine qui n’a pas d’interface graphique, ou par SSH ?
Effectivement, on peut s’en sortir à grand coup de du, grep et find .

Par exemple, et vous conviendrez que c’est facile à mémoriser :

du -cks * | sort -rn | while read size fname; do for unit in k M G T P E Z Y; do if [ $size -lt 1024 ]; then echo -e  « ${size}${unit}\t${fname} »; break; fi; size=$((size/1024)); done; done.

Mais il n’est pas du tout pratique de se construire une représentation de l’arborescence pour agir efficacement et rapidement.

Confronté à un manque surprenant de place sur un NAS distant venant à peine d’être installé (500 Go / 1 mois), j’ai recherché un outil me permettant de trouver quel utilisateur squattait la place.

NCDU, pour NCurses Disk Usage, permet d’analyser le système de fichier, en tout cas l’arborescence dans laquelle vous vous trouvez ou celle que vous lui indiquez, et de naviguer dedans. Et de supprimer les fichiers/dossiers inutiles que vous rencontreriez.

Dans mon cas, supprimer le dossier de films de vacances (( mouais… )) d’un utilisateur a permis de retrouver de quoi travailler confortablement pour les autres.

NCDU se trouve dans les dépôts officiels, et un simple sudo apt-get install ncdu vous permettra de profiter de ce formidable cli tool.

La faiblesse du libre, c’est aussi sa communauté.

SharkAvong 1.0 est enfin disponible!

Nous étions nombreux à attendre la sortie de la version 1 avec impatience. Les développeurs qui passaient sur le forum laissaient sous entendre que la sortie se ferait avant la fin du mois, et ils ont tenu parole! SharkAvong 1.0 est arrivé!

Au menu, beaucoup de nouveautés, dont certaines attendues depuis longtemps. Jugez plutôt:

  • support de l’internationalisation. L’anglais et le brésilien sont déjà disponibles, le français est en cours.
  • splash screen à l’ouverture du logiciel, avec indication du statut!
  • binaires disponibles pour les plus grandes distributions (Ubuntu)!
  • nouveau thème de couleurs, nouveau thème d’icones par défaut
  • application skinnable (même si les skins ne sont pas encore disponibles)
  • génération d’un fichier de log dès le lancement, facilitant la recherche de bugs
  • on peut à tout moment accéder à la fenêtre d’identification (enfin!)
  • les derniers éléments non GPL ont été supprimés!
  • Installable sur Windows XP!!! (même si ça reste en beta) Bientôt sur Seven(W7)!
  • et beaucoup d’autres bugs éliminés!

La mise à jour vous sera proposée au lancement du logiciel, et je vous invite à la suivre de façon automatique, tout s’est très bien déroulé pour moi.

De qui se moque t-on?

Là, toute de suite? De vous. Et c’est moi qui me moque.

SharkAvong n’existe pas. Enfin, pas sous ce nom. Inutile de le chercher sur google, vous ne le trouverez pas au détail. Je me suis bien assuré de n’égratigner personne.

Mais j’en ai eu marre!

Marre des nouvelles qui n’annoncent rien, des infos qui n’en sont pas, des pseudo-journalistes qui ne sont ni journalistes, ni même approchants d’un pseudo quelque chose.

Marre de lire des articles dont le seul but est d’employer des mots clefs destinés à faire augmenter le nombre de visiteurs (malheureusement, ça fonctionne…).

Marre des blogs sur lesquels il faut s’enregistrer pour un commentaire demandant des éclaircissements.

Marre des articles « d’actualité » non datés qui datent de plusieurs années en arrière.

Marre des fanatiques du libre qui font du bruit pensant faire de la publicité.

Parce qu’il est là, le problème.

Revenons au début (traveling arrière, camera zoom avant): le pseudo article que vous avez lu au dessus est une copie d’un article que j’ai lu sur le net. Copie à l’identique ((exception faite des fautes de grammaire et d’orthographe que je ne peux me résoudre à laisser dans un de mes textes)), aux liens près. Bien qu’il n’y en ait aucun…

Or, que dit cet article? Qu’avez vous appris à sa lecture?

Rien. Ni à quoi sert le logiciel, ni où le trouver, ni l’emplacement de la communauté… Rien.

Toujours est il que cet « article », et toutes les copies presque à l’identique repris sur tous les autres blog remplissent les moteurs de recherche de bruit, masquant plus ou moins fortement le site réel du logiciel qui se trouve relégué à la 38e page de google.

Et des articles comme ça, il en apparait tous les jours.

De l’éthique et des liens

Lorsqu’on écrit un article, il faut réfléchir un peu!

Voici 10 préceptes que j’applique avant de cliquer sur « publier »:

  1. Qui va me lire ? Seulement les gens qui connaissent mon blog ? Non! Les moteurs de recherche amènent autant, voire plus, de lecteurs.
  2. L’article s’adresse t-il aux initiés, ou aux néophites ? Dans tous les cas, un minimum d’explication est nécessaire, ne serait ce que pour savoir de quoi on parle. Inutile de faire un pédigrée complet à chaque fois, mais une phrase aide à centrer le sujet. L’article complet est il compréhensible?
  3. Pourquoi j’écris cet article? Si c’est pour ramener des gens à la communauté, il est nécessaire de leur permettre de rejoindre rapidement ladite communauté. Un lien vers le site du projet, ou vers une page qui en parle plus longuement est un minimum pour que l’article serve à quelque chose.
  4. Cet article est il important/nécessaire? Si l’information que vous diffusez est présente partout sur le net, pourquoi en faire un article? Si vous ne faites que reprendre ce qui existe ailleurs, liez l’article externe à votre blog, au lieu de dupliquer l’information.
  5. L’article est il juste/pertinent? Avez vous au moins vérifié vous même la véracité des informations? Vous n’imaginez pas le nombre de co***eries ((nn  ;o) )) recopiées d’un blog à l’autre dans une course à la primeur de diffusion…
  6. L’article est il suffisamment commenté/documenté? Un minimum de recherche et de liens dans votre article permet au visiteur de trouver ce qu’il cherche, les réponses à ses questions, et augmente votre crédibilité. Et par conséquent, le fait de rester ou revenir sur votre blog. Sinon, il suffit de regarder combien de visiteurs partent de votre site en moins d’une minute. Une centralisation dans votre article des liens nécessaires permet de faire revenir les visiteurs qui sauront qu’ils n’ont pas à chercher ailleurs ce qu’ils ont trouvé chez vous.
  7. Cet article est il nécessaire d’une manière ou d’une autre? ((Excepté pour le plaisir de publier sur son blog, bien sûr)) Si je ne le publie pas, va t-il manquer? Si je le publie, que va t-il apporter aux lecteurs? Si je me fais le porte parole d’une communauté, le fais-je bien?
  8. L’article est il mûr? Vais-je le modifier après publication? ((la réponse est toujours non, mais dans les faits…)) Souvent, après être passé à autre chose, l’esprit se détend et on voit qu’on aurait pu formuler les choses autrement, apporter plus de précisions ou d’indications. Ne publiez jamais après avoir fini la rédaction d’un article. Laissez passer un peu de temps. Pourquoi? Les agrégateurs ne prennent en compte que la première version publiée, et vos modifications ne seront jamais vues si on ne vient pas sur le site. Et si l’article est flou, imprécis, pas intéressant, comme mon exemple du début, on ne viendra jamais sur votre site.
  9. Me suis-je relu suffisamment? Les fautes de grammaire et d’orthographe sont pénibles à lire, changent le sens des phrases, et surtout, diminuent votre page rank dans les moteurs de recherche! Il existe plein d’outils (à commencer par les navigateurs eux même) qui signalent vos fautes et des sites vous permettant de conjuguer correctement, sans compter Verbiste disponible dans votre distribution. On peut pardonner quelques fautes, mais s’il faut déchiffrer votre écriture, on passe vite au site suivant de google. ((Chromium m’a même proposé la traduction en français d’un site entièrement écrit en français (et bien paramétré au niveau du serveur et des entêtes) mais dont tous les termes étaient mal écrits, en phonétique, cowboyz ou avec des fautes…))
  10. Ais-je été correct dans mes propos? L’article n’est il pas violent, agressif, malpoli ? L’ai-je écrit sous le coup de l’excitation, la colère ?Pourrais-je un jour le regretter devant mes parents, mes enfants, un employeur, une administration? Liberté d’expression, OK, mais respect des libertés, surtout.

Ce ne sont que les questions principales à se poser lorsqu’on écrit un article. Bien sûr que vous savez de quoi vous parlez, mais si vous êtes le seul, à quoi bon parler?

J’ai plein d’articles dans mes brouillons qui n’ont pas été publiés parce qu’ils ne répondaient pas aux questions ci dessus. un peu de temps suffirait à les rendre éligibles, mais le temps ou l’envie me manquent. Ce n’est pas grave, la qualité générale ne baisse ainsi pas.

Logiciels libres, expression libre

Libriste, c’est bien. Intégriste, même libriste, non.

Mais pour autant, doit on laisser dire n’importe quoi?

Il est vrai que l’assimilation Ubuntu <-> Linux est souvent désagréable, mais cela a ses raisons.

Ubuntu a réussi à fédérer une large part des utilisateurs de Linux ((Je rappelle qu’on doit dire GNU/Linux, mais que dans un soucis répondre à la question 2, je simplifierais en Linux)) pour une raison simple: la simplicité d’utilisation. Ce qui a amené un grande communauté, qui rameute largement à tous les niveaux et qui fait beaucoup de bruit.

Du coup, cela laisse penser que les autres distributions sont minoritaires et négligeables.

La faute à qui?

A tous ces blogs qui n’expliquent pas correctement la distribution dont ils parlent? A ces auteurs qui font savoir qu’ils savent mais ne transmettent pas ce savoir? Aux communautés qui n’assurent un soutien que lorsqu’on parle déjà leur langage? Au manque de documentation compensé par les forums des utilisateurs dont les propos sont 1kompéansib ? A l’assistance RTFM ?

J’ai lu un jour qu’ « une communauté à les utilisateur et le soutien qu’elle mérite« . J’ai été révolté sur le coup, ce qui fait que la phrase m’a marqué. Mais je ne suis pas loin de le penser aujourd’hui. Depuis que je consulte le planet-libre, et que j’y suis publié, je pense en effet qu’une diversité, si elle est rafraichissante et puissante, ne peut être utile que si elle est guidée et canalisée.

Les distributions les plus importantes aujourd’hui sont toutes dirigées/contrôlées/organisées par un comité directeur qui ne fait pas que du développement mais aussi de l’administration et de la modération de forum, ce qui permet d’indiquer la direction à suivre.

Et quand un de mes articles est refusé à la publication (sur le net ou en papier), c’est parce que j’ai raté le coche, pas parce que ces $*µ£% d’admins sont des intégristes bornés équipé d’œillères. Le bien de tous, et la survie de la communauté passe parfois par le désagrément de quelques uns.

Espoir, quand tu nous tiens

Internet commence a rassembler plus de fausses informations que de vraies, en particulier sur les logiciels libres. Les communautés devraient être plus attentives à ce qu’on dit d’elles, et pas attendre que ça vienne tout seul. Et contacter les auteurs pour leur faire corriger les fausses informations, rumeurs et manque de précision. La qualité perçue, la réputation passe par là.

C’est vrai que cela représente un gros travail, mais c’est un travail qui a été négligé depuis trop longtemps.

L’image a toujours été négligée, que ce soit dans le graphisme ou dans la communication. Ceux qui n’ont pas fait cette erreur ont réussi à percer (Mozilla, Google ((don’t be evil, quel formidable slogan, un logo travaillé, une page épurée. Ensuite seulement viennent les résultats.)), Ubuntu, Apple ((dont tous les produits sont basés sur l’image avant les aspects techniques)), même Microsoft accorde une importance primordiale sur ces points). Les campagnes publicitaires ou de mises en avant se retrouvent réduite à néant à cause des mauvais articles des utilisateurs. Pourquoi pensez vous que les plus grand xxxxx ((mettez ici ce que vous voulez)) censurent leurs forums et font des procès aux détracteurs? Sans aller jusque là, une attention particulière est nécessaire de la part du libre pour continuer d’exister la tête haute.

Pour l’histoire

Je teste beaucoup de distributions. Les bonnes idées sont à prendre où elles sont, et les logiciels libres sont un creuset où chacun peut faire sa cuisine. J’ai voulu tester une distribution non confidentielle dont je tairais le nom, dont on m’avait venté les outils d’administration. Même en parlant 3 langues, en en lisant deux autres et avec le traducteur de Google, j’ai passé un temps fou à trouver les informations minimales sur les logiciels intégrés.

Si j’avais vraiment voulu basculer sur cette distribution, j’aurais fait bien vite demi tour! Cette distribution n’était pas faite pour moi, selon certains. Peut être. Peut être aussi qu’elle n’est faite pour personne et que le problème se règlera de lui même, lorsque sa communauté aura fini de se saborder…

PS: cet article a été écrit il y a quelques jours et seulement publié aujourd’hui. Que les auteurs dont les billets me précèdent ne voient pas d’attaque envers leur article.

Denyhosts: dé-blacklister une adresse IP valide

J’ai déjà parlé de denyhosts et de tous le bien que j’en pensais (dans l’article filtrer-les-connexions-ssh) mais il arrive parfois qu’une adresse IP valide et ne devant pas être bloquée se retrouve blacklistée ((parce qu’on a fait des essais, qu’on a oublié le mot de passe ou fait une erreur dans le port à utiliser…Et c’est du vécu.)). Du coup, l’adresse se retrouve systématiquement listée dans le fichier /etc/hosts.deny, ce qui fait qu’il est impossible de se connecter sur le serveur depuis ce site. Ce qui est catastrophique quand on a interdit toute connexion, SAUF depuis cette IP fixe…qui vient de se faire blacklister!.

Tout d’abord, lorsque vous mettez denyhosts en place sur un serveur, si vous avez une IP fixe depuis le site d’accès, pensez à vous autoriser en permanence afin de ne pas vous trouver renfermé dehors. Pour ce faire, il suffit d’ajouter la ligne suivante au fichier /etc/hosts.allow, en remplaçant les XXX par votre adresse IP fixe ((si votre IP est variable, ça ne sert strictement à rien. )):

ALL: XXX.XXX.XXX.XXX

Si vous êtes déjà enfermé dehors et que vous n’avez pas physiquement accès au serveur, il vous faut absolument changer d’adresse IP. Rebootez votre modem, ou allez chez un ami, un cybercafé ou au McDonald pour vous connecter au serveur et corriger le problème. Pensez ensuite à changer tous les mots de passe utilisés dès que vous rentrez chez vous.

Si vous avez blindé les accès au serveur et que vous n’arrivez pas à entrer, il va vous falloir être inventif. Dites vous que c’est comme ça qu’on apprend le métier et à être prudent ((Il existe deux types d’administrateurs : Ceux qui ont fait une très grosse connerie en tant que root et ceux qui vont en faire une… )) . J’ai bien fait 1000 km AR en voiture juste pour re-démarrer un serveur qui avait pris un « halt » dans la mauvaise console, ce qui ne m’est plus jamais arrivé…

Mais si vous avez réussi à rentrer sur votre serveur, vous avez fait le plus gros:

  1. Arrêtez denyhosts (/etc/init.d/denyhosts stop)
  2. Supprimez l’entrée du fichier /etc/hosts.deny correspondant à votre IP
  3. Profitez en pour ajouter votre IP au fichier /etc/hosts.allow comme indiqué plus haut
  4. Allez dans le dossier /var/lib/denyhosts ((sur Ubuntu. Dans le cas d’autres distributions, cela peut varier. Il semblerais que sur certaines versions ce soit dans/usr/share/denyhosts/data/ )). Vous devriez y trouver des fichiers comme ci dessous. Supprimez de ces fichiers toute occurrence à l’adresse IP concernée en supprimant complètement les lignes. la commande rgrep « xxx.xxx.xxx.xxx » /var/lib/denyhosts/ vous dira dans quels fichiers vous devez agir.
  5. Relancez ensuite denyhosts (/etc/init.d/denyhosts start)
  6. Envoyez moi une petite bénédiction
  7. Rentrez chez vous et allez vous coucher ((c’est en général parce qu’on est fatigué qu’on fait ce type de bêtise.))

Liste des fichiers du dossier /var/lib/denyhosts:

112253 -rw-r--r-- 1 root root 140K 2010-12-08 22:26 hosts
112142 -rw-r--r-- 1 root root 140K 2010-12-08 22:26 hosts-restricted
112251 -rw-r--r-- 1 root root 140K 2010-12-08 22:26 hosts-root
112146 -rw-r--r-- 1 root root 140K 2010-12-08 22:26 hosts-valid
112148 -rw-r--r-- 1 root root  108 2010-12-08 22:26 offset
113817 -rw-rw-rw- 1 root root  27K 2010-12-08 11:42 purge-history
112147 -rw-r--r-- 1 root root    0 2010-12-08 22:26 suspicious-logins
112143 -rw-r--r-- 1 root root  109 2010-12-08 22:26 users-hosts
112145 -rw-r--r-- 1 root root  14K 2010-12-08 22:26 users-invalid
112144 -rw-r--r-- 1 root root  118 2010-12-08 22:26 users-valid

Vérifiez quand même que l’IP n’est pas bloquée pour de bonnes raisons. Ça m’est arrivé dernièrement à cause de mauvais droits sur le home de l’utilisateur, donc le serveur SSH m’envoyait systématiquement bouler. Par conséquent, au bout d’un certain nombre d’essais échoués, denyhosts a considéré que j’étais illégitime et a blacklisté l’IP.

Je confirme avoir cherché un moment ((que de souvenirs passionnant et haletants j’aurais à conter à mes petits enfants…! )).

Utiliser (tidy) HTML Validator sur Ubuntu Lucid 10.04


J’utilisais l’extension de Firefox Tidy HTML Validator jusqu’à ce qu’elle ne fonctionne plus avec les versions packagées par Ubuntu.

HTML Validator est une extension Mozilla qui ajoute une validation HTML dans Firefox et Mozilla. Le nombre d’erreurs d’une page HTML est visible sur la forme d’ une icône dans la barre d’état lorsque vous naviguez. Les détails des erreurs sont vu quand on regarde la source HTML de la page.

L’extension est basée sur Tidy et OpenSP . Les deux algorithmes ont été élaborés par le Web Consortium W3C . Et maintenant étendus et améliorés par un grand nombre de personnes. Les deux algorithmes sont intégrés à l’intérieur de Mozilla / Firefox et permettent la validation en local sur votre machine, sans envoyer de HTML à un serveur tiers.

Mais depuis quelques temps, je dois de nouveau me plonger dans la création de sites, et elle me manquait. Donc je me suis penché sur les solutions nécessaires pour l’utiliser.

Puis finalement, sans trop savoir le pourquoi du comment, j’ai réussi à la faire fonctionner. J’ai reproduit avec succès l’installation sur deux autres ordinateurs et je vous livre ici la méthode pour la Lucid Lynx en 32 bits.

HTML validator est compilé pour utiliser la librairie libstdc++5. Or, sur Ubuntu, ce n’est pas la dernière version existante (c’est la libstdc++6).Si vous essayez d’installer directement l’extension, vous aurez le message d’erreur suivant:

error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

Installation de la librairie libstdc++5 sur Ubuntu

La première chose à faire est de trouver cette librairie et de l’installer. Pas de chance, les liens vers les sites Ubuntu des anciennes versions proposant cette librairie sont morts, mais heureusement, on peut la trouver chez Debian et l’installer sans problème. J’ai utilisé la version Lenny (stable)/ i386 sur le miroir ftp.de.debian.org/debian

Installation des paquets supplémentaires

Certains paquets seront nécessaire par la suite, ajoutons les directement, cela évitera les problèmes de dépendances:

apt-get install libosp5 libnspr4-dev

Il faudra aussi modifier le fichier /etc/profile pour ajouter la ligne suivante en toute fin de fichier:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH/usr/lib/xulrunner/

Ensuite, fermez votre session et reconnectez vous pour que cela soit pris en compte.

Installation des éléments nécessaires au module HTML Validator

Quelqu’un a eu la bonne idée de packager les différents éléments nécessaires au fonctionnement du module, et de les mettre sur un PPA. Par contre, impossible d’utiliser le ppa, il ne liste pas les paquets qui nous intéressent… Mais on peut y accéder directement en suivant cette adresse.

Installez les paquets « data » et html-validator pour votre version. Dans mon cas: htmlvalidator-data_0.8.5.8+svn65-0ubuntu1~ppa1_all.deb et htmlvalidator_0.8.5.8+svn65-0ubuntu1~ppa1_i386.deb. Vous pouvez les télécharger et les installer en ligne de commande, ou le faire graphiquement, tant que vous commencez par le paquet « data ».

Installation du module

Si tout est présent, en redémarrant Firefox, vous verrez le module présent dans la liste des modules. Mais il vous dira que ce module n’est pas compatible avec la version de Firefox. Dommage…

Rassurez vous, les éléments nécessaires au fonctionnement sont installés. Il suffit maintenant d’aller sur le site de l’extension et de télécharger le module pour Firefox, et de l’installer normalement.

Redémarrez Firefox, et le module sera opérationnel.

Les idées sur lesquelles je ne me suis pas penché

Tout simplement parce que la méthode ci dessus fonctionne. Ce n’est peut être pas le plus propre, mais je manque de temps pour tout défricher.

  • Si on faisait croire à Firefox que la libstdc++6 est la libstdc++5 en créant un lien adéquat? Je ne connais pas les différences entre les deux versions.
  • Peut on utiliser wine pour faire tourner Firefox win32 et l’extention Tidy HTML Validator ?
  • Contacter le mainteneur du PPA pour savoir pourquoi il ne liste pas les paquets html-validator et s’il peut corriger ceux ci pour qu’il ne soit plus nécessaire d’installer l’extention par la suite (et suivre les mises à jour avec le gestionnaire des paquets)
  • Contacter le mainteneur de l’extention Tidy HTML Validator pour lui soumettre la méthode, et voir s’il peut proposer une extension directement compatible avec Ubuntu.

Si vous avez du temps…

gReemote, une remoteware pour votre freebox

Il m’arrive de mettre la télé lorsque je travaille à la maison. Non pas que je la regarde, mais je me sens moins seul et ça m’aide à ne pas perdre la notion du temps lorsque je suis absorbé par mon travail ((et il ne faut pas rater la sortie de l’école!)).

En général, je n’agis sur la télé que pour baisser le son quand les pubs se lâchent sur les décibels, ou que le programme ne me plait pas (certains « artistes » me sortent pas les yeux). Et à ce moment, je suis toujours en train de me demander où j’ai bien pu poser cette télécommande qui n’est pourtant pas discrète!

Puis je me suis dit que, vu que Free a libéré des API’s d’accès à la freebox, quelqu’un avait sans doute développé un soft pour la remplacer ((au pire, je me lançais dans le dev à ce sujet)) et je suis tombé sur ce post sur le forum Ubuntu.

Alors j’ai installé le logiciel comme indiqué dans la documentation et j’en suis très satisfait!

Simple à installer, à paramétrer, à utiliser. Un seul petit reproche ((quand même, il faut que je critique un peu)), les boutons de couleur ne sont pas en couleur, ce qui fait qu’il est parfois difficile dans les menus de la freebox d’appuyer sur le bon bouton. Au risque de faire une erreur. Ils sont notés A B X Y, mais dans les menus seules les couleurs sont indiquées ((Un coup de marqueur sur l’écran du PC pour colorer les boutons de l’interface n’est PAS une bonne idée ;oD )). Depuis la version 1.73 (et l’indication dans le commentaire de sellax), les boutons de l’interface reprennent les couleurs de la télécommande.

Autre avantage que j’y ai trouvé, c’est que mes enfants cachaient la télécommande pour qu’on ne stoppe pas la chaine de dessins animés… On éteignait mais on passait du temps à trouver cette télécommande. Désormais, je leur montre que papa est le plus fort!!!

Petites précisions:

  • Le logiciel sert à commander la freebox et ce qui est affiché sur la télé. Si vous regardez les chaines sur votre ordinateur, ça ne vous servira à rien.
  • Il ne fonctionne que si vous vous trouvez sur le réseau interne de la freebox (wifi, CPL ou ethernet). Pas de fonctionnement en freewifi (heureusement).
  • On peut choisir le débit par défaut des chaines et accéder à celles ci d’un simple clic.
  • Applet 100% opérationnel avec gnome. Il parait que ça l’est aussi pour KDE.

Depuis un mois que je l’utilise, rien à signaler, à part que tout fonctionne bien.

Résoudre « erreur segmentatione des dépendances…50% »

Aujourd’hui, après une installation propre de Maverick Meerkat et une mise à jour du système, je me suis retrouvé dans l’impossibilité d’installer quoi que ce soit…

L’erreur suivante apparaissait toujours:

manu@pctest:~$ sudo apt-get install mplayer
Lecture des listes de paquets... Fait
Erreur de segmentatione des dépendances... 50%

Aucune des commandes habituelles (apt-get -f install, apt-get update) , pas plus que la réparation des fichiers de status ne donnait de résultat positif. J’ai trouvé la solution dans un vieux post de 2005 (!).

Voici ce qu’il faut donc taper:

$ sudo rm -f /var/cache/apt/*.bin
$ sudo apt-get update

Et tout refonctionne de nouveau correctement.

PS: vous aurez noté la faute dans le message d’erreur: ce devrait être « segmentation » au lieu de « segmentatione »

Pourquoi GNU/Linux est il meilleur ?

Et comment l’expliquer simplement ?

Surtout à des gens qui n’y connaissent rien ou qui n’ont pas le temps d’écouter toutes les explications passionnées qu’on a envie de leur transmettre ?

En les envoyant sur ce site: http://www.whylinuxisbetter.net/index_fr.php?lang=fr

Et ce que je trouve excellent, c’est que chaque image, en plus de soulever une question chez le visiteur, lui apporte surtout des réponses lorsqu’il clique dessus.

Je trouve l’idée génialement simple. Pas vous?

Convertir un carnet d’adresse LDIF en VCF (Thunderbird vers Roundcube)

Thunderbird exporte son carnet d’adresses en format LDIF ou CSV ou  TSV. Or, quand on veut importer son carnet d’adresses dans Roundcube qui n’importe que le format VCF, on est un peu coincé…

Du coup, j’ai écrit rapidement un petit programme python qui fait la conversion (ldif2vcf.py) d’un carnet d’adresses rapidement, puisque je n’ai pas trouvé de solution sur le net ((vive les formats ouverts!)).

Comme il est destiné à Roundcube et que celui ci n’utilise pas (pour l’instant) tous les champs disponibles dans une vcard, seules sont converties les informations de nom, prénom, nom à afficher et adresse mail principale. Par conséquent, si vous voulez l’utiliser pour autre chose, ne vous étonnez pas si toutes les informations ne sont pas récupérées dans le fichier de sortie ((mais la modification de code serait simple pour tout récupérer)).

Le fonctionnement est simple: vous indiquez le fichier d’entrée (.ldif) avec l’option « -f » et le fichier de sortie (.vcf) avec l’option « -o« . Si vous n’indiquez pas de fichier de sortie, le résultat s’affiche à l’écran.

Il faut bien sûr exporter préalablement votre carnet d’adresses depuis Thunderbird quelque part sur votre ordinateur.

exemple:

python ldif2vcf.py -f /tmp/adresses_personnelles.ldif

ou

python ldif2vcf.py -f /tmp/adresses_personnelles.ldif -o /tmp/sortie.vcf

L’option « -h » affiche une aide succincte.

Netspeed: monitorer l’activité réseau sur Gnu/Linux

Voici Netspeed, une applet permettant de monitorer l’activité de votre (ou vos) carte réseau d’un seul coup d’oeuil.

Pour l’installer:

sudo apt-get install netspeed

Ensuite, un clic droit sur l’une de vos barres d’outils et Ajouter au tableau de bord

Ce qui vous donnera ceci:

Enfin, clic droit sur l’applet sur le tableau de bord pour sélectionner les préférences (en particulier la carte réseau) et pour voir les détails sous forme de graphique du périphérique

Mine de rien, c’est un programme pratique pour vérifier que les échanges sur le réseau se font bien à la vitesse attendue et aider à déterminer si un ralentissement provient du réseau ou de la machine. Je sais qu’il existe des outils plus puissants en ligne de commande, mais il est parfois nécessaire que des néophytes sachent constater par eux même certains éléments, et Netspeed est simple et rapide à utiliser pour eux.

[Apache2] Résoudre « Code d’erreur : ssl_error_rx_record_too_long »

En essayant de paramétrer un site en SSL sur Lucid, j’ai obtenu cette erreur de la part de Firefox ((à noter qu’Opera donne un autre type d’erreur, mais que je ne l’ai pas notée (erreur fatale 550, si ma mémoire est bonne) )). Erreur qui ne veut rien dire par elle même et une recherche sur le net ne vous donnera que peu de résultat au vu de la variété de réponses, parfois loufoques.

La première chose à faire est de vous assurer que le serveur réponde bien en HTTPS et non en HTTP, et de faire un GET:


telnet 82.XXX.XXX.XXX 443
Trying 82.XXX.XXX.XXX...
Connected to 82.XXX.XXX.XXX.
Escape character is '^]'.
GET /
<html>
<body>

<h1>It works !</h1>
<br />
</body>
</html>
Connection closed by foreign host.

Si vous obtenez du code html, comme c’est le cas ci dessus , au lieu d’une bouillie de caractères (ou de …rien), c’est que vous n’êtes pas en HTTPS mais en HTTP tout court.
Or, comme firefox s’attend à recevoir un certificat dont la longueur est faible, mais qu’il reçoit le code html complet d’une page, forcément il dit que c’est trop long.

Ce qui se trouve confirmé par la lecture du fichier /var/log/apache2/error.log:
[Sat Oct 09 14:40:18 2010] [error] [client 10.0.0.1] Invalid method in request \x16\x03
qui dit que la méthode d’accès n’est pas la bonne.

C’est pas très parlant, mais vu que j’ai galéré pour trouvé d’où venait le problème, j’essaye d’en faire profiter les autres.

Ah, au fait! Mon problème venait que dans la conf de mon virtualhost en SSL je mettais l’IP publique, vu que c’est le seul serveur en DMZ et que tout renvoie dessus. Je croyais le firewall transparent, vis à vis d’apache.
Je me trompais. Il faut mettre l’IP sur le réseau local, vu par la carte réseau elle même.
Après, ça va tout de suite mieux.