DigitalSpirit / Blog

Des USE flags à jour pour votre Gentoo

Utilisateur de Gentoo, il m'arrive fréquemment d'ajouter des USE flags afin de profiter de fonctionnalités supplémentaires pour tel ou tel programme, or, j'installe en général les mêmes applications sur mes machines (pro ou perso), du coup, je me retrouve à installer les mêmes USE flags un peu partout.

Afin d'éviter les erreurs de copie de USE flags et d'être synchro entre mes machines, j'ai créé un outils tout simple permettant de fusionner les USE flags, ce dernier est utilisable en ligne à l'adresse suivante : /lab/misc/merge-use-flags.php

L'utilisation est, me semble-t-il, assez claire, copiez dans les champs les contenus de "USE flag" de vos machines, validez, un nouveau champs apparait alors avec un USE flag correspondant à la fusion des 2 précédents.

Cependant, certain USE flags reste spécifique à certaine architecture, prenez garde de ne pas les mélanger, pour ma part, je procède simplement en séparant d'une ligne vide les USE flags génériques (en vert) de ceux spécifiques au matériel (en rouge) :

USE="
alsa automount avahi
bash-completion bluetooh bzip2
cairo cdaudio cdr code
dbus directfb doc dvb dvd dvdr
exif
fat ffmpeg firefox
gif gimp glitz gnome gstreamer gtk
ipod
jpeg jpeg2k
lame libcaca
matroska mng mp3 mpeg mysql
ogg opengl
pdf png php
quicktime
raw
samba sqlite subversion svg
theora tiff truetype type1
unicode usb
v4l v4l2 vnc vorbis
win32codecs
X
x264 xcb xine xinerama xml xulrunner xvid

mmx sse smp
"

Ce script permet aussi de trier les USE flags et éventuellement des les grouper par critères de tri, pratique pour s'y retrouver facilement dans son make.conf ...

Ouvrir l'article

Connection ssh sans mot de passe

Billet pense-bête, ça m'évitera de chercher si j'ai un trou de mémoire :)

Il est possible de se connecter sans saisir de mot de passe sur une machine distante en SSH, chose très pratique lors de l'administration de plusieurs machines...

Si ce n'est pas encore fait, il vous faut générer votre paire de clef publique / privée, pour cela, entrez la commande suivante :

$ ssh-keygen

Il vous demandera :

  • L'endroit oû stocker les clefs, (~/.ssh/id_dsa par défaut)
  • Une phrase faisant office de mot de passe, laissez cette dernière vide

Ensuite, il faut copier la clef publique dans le fichier ~/.ssh/authorized_keys du pc distant, vous pouvez le faire manuellement avec la commande scp, mais il existe plus simple :

$ ssh-copy-id user@domain.tld

Voilà, vous pouvez dorénavant vous connecter à votre machine sans mot de passe.

Prenez garde à n'utilisez cette méthode qu'à partir d'une machine "de confiance"...

Ouvrir l'article

Onglets dans la même instance de GVim

Voilà une petite astuce pour les utilisateurs de GVim qui vous permettra d'ouvrir tous vos documents dans la même instance grâce aux onglets.

La page Vim documentation : remote nous apprend qu'il est possible de faire fonctionner Vim comme un serveur recevant des messages de clients et exécutant les commandes demandées par ces derniers.
Une de ces commandes nous intéresse et va justement nous permettre d'ouvrir des documents dans la même instance de Vim, il s'agit de remote-tab-silent.

Testons cette commande :

 $ gvim -p --remote-tab-silent toto

Une instance de GVim s'ouvre avec toto dans un onglet (le paramètre p permet d'ouvrir un onglet par fichier).
Gardons GVim ouvert et testons de nouveau :

 $ gvim -p --remote-tab-silent foo

Le fichier foo s'affiche maintenant dans un nouvel onglet de la même instance GVim, nous avons donc 2 fichiers ouvert dans GVim : toto et foo.

J'ai fait un petit script bash qui permet de s'affranchir des problèmes rencontrés à l'ouverture avec Nautilus (qui tente d'ouvrir les documents avec le paramètre "-f") et qui évite surtout de devoir saisir les paramètres à chaque fois, il suffit alors de remplacer le fichier binaire de gvim par le script :

 $ mv /usr/bin/gvim /usr/bin/gvim-bin

Ensuite, il vous suffit de déposer le script ci joint dans le dossier /usr/bin et de lui attribuer les droits d'exécution.

Bon Gvim !

Ouvrir l'article

Log Watcher

Introduction

Surveiller des logs dans une console est quelque chose de laborieux et toute solution permettant de simplifier cette tâche ingrate est bonne...

Et c'est justement là qu'intervient Log Watcher, une application qui va vous améliorer grandement la vie lorsque vous aurez besoin de surveiller d'ininterrompu log...

Description

Traduction libre du manuel lwatch :

Log Watcher est un "log colorizer", c'est à dire un programme capable de mettre en couleur des logs en fonction d'une syntaxe, en l'occurrence, en fonction de mots rencontrés.
Il lit le contenu de syslog/syslog-ng depuis des tubes nommées (named fifo) ou depuis l'entrée standard (stdin) et affiche les données colorées dans la sortie standard (stdout).

Lwatch est hautement configurable. Il lit sa configuration depuis /etc/lwatch/lwatch.cond ou depuis un fichier grâce à l'option -C.

Son fonctionnement est simple. il lit une ligne depuis l'entrée courante (par défaut, /var/lib/lwatch/syslog.fifo), la divise en 4 parties : date, nom d'hôte, nom du service (avec le PID si disponible) et le message associé.
Chaque partie possède sa propre couleur qu'il est possible de définir grâce au fichier de configuration, les couleurs par défaut sont les mêmes que pour loco.

Mais lwatch n'est pas seulement un simple log colorizer, il est capable de colorer les logs de la manière qu'on le souhaite. Il est possible de choisir une nouvelle couleur pour chaque partie (date, nom d'hôte, service, message) en utilisant des expressions régulières.

Installation

L'installation est aisée avec Ubuntu, en effet, elle se résume simplement à saisir ceci dans un terminal :

sudo apt-get install lwatch

Et voilà lwatch installé sur votre machine.

Configuration

Il est possible de configurer l'affichage à l'aide du fichier /etc/lwatch/lwatch.conf dont la syntaxe est assez simple, voici un exemple de celle ci :

[...]
/reject\\w*/    highlight=red
/accept\\w*/    highlight=green
/success\\w*/   highlight=green
/sent/        highlight=green
/lost/        highlight=red   
/deferred/    highlight=brown
[...]

Que veut dire ce charabia ?
En fait, ce sont des règles de configuration constituées par une expression régulière et une actions ou modificateurs associés.

Nous allons voir les différents termes que l'on rencontre dans le fichier de configuration.

Options générales

Les options suivantes vous permettent de définir le comportement par défaut de Log Watcher :

  • date_color : Couleur par défaut de la date
  • host_color : Couleur par défaut du nom d'hôte
  • serv_color : Couleur par défaut du nom du serveur
  • mesg_color : Couleur par défaut du message
  • input_file : Fichier du flux
  • output_file : Fichier de sortie (par défaut, c'est la sortie standard stdout)
  • show_unparsed : Permet d'afficher les lignes qui ne répondent pas au bon formatage (date, nom d'hôte, service, message)

Les couleurs

Voici la liste des couleurs qu'il est possible d'utiliser :

blackred green brown blue magenta cyan lightgray darkgray brightred brightgreen yellow brightblue purple brightcyan white

Expressions régulières

Afin de matcher (c'est à dire choisir, attraper, sélectionner, la traduction n'est pas facile... :) ) les bonnes lignes avant de leur appliquer une action, Log Watcher utilise des expressions régulières, voici le principe :

/expression/ action
Simple ! non ?

Voici un autre exemple avec plusieurs actions :

/espression/ {
    action1
    action2
    ...
    actionN
}

Actions et modificateurs

Les actions vont vous permettre de mettre en couleur les éléments sélectionnés par l'expression régulière.

Voici les actions disponibles :

  • date_color : Couleur par défaut de la date
  • host_color : Couleur par défaut du nom d'hôte
  • serv_color : Couleur par défaut du nom du serveur
  • mesg_color : Couleur par défaut du message
  • exit : Ne pas exécuter les autres expressions
  • highlight : Mettre en surbrillance
  • ignore : Ignorer et ne pas exécuter les autres expressions
  • match_host : Exécuter l'expression régulière sur le nom d'hôte au lieu du message
  • match_service : Exécuter l'expression régulière sur le service au lieu du message

Voilà, on en sait assez maintenant pour lancer Log Watcher !

Utilisation

Pour surveiller simplement le syslog de votre machine, cette commande suffit :

tail -f /var/log/syslog | /usr/bin/lwatch -i-

Le fichier de log /var/log/syslog apparaîtra désormais d'une manière coloré en fonction de la présence ou non de termes sur chaque lignes.

Pour éviter d'avoir à saisir cette longue commande, vous pouvez créer un alias de cette manière :

alias systail="tail -f /var/log/syslog | /usr/bin/lwatch -i-"

Ainsi, vous n'aurez plus qu'à saisir systail pour voir les logs défilés...en couleurs (n'oubliez pas de mettre cette alias dans votre script de lancement, .bashrc par exemple).

Voici une vue globale de la fenêtre de log maintenant en couleur :

Vue d'un terminal mis en couleur avec Log Watcher !

Conclusion

Vous voilà prêt à surveiller d'interminable log, si quelques interrogations subsistaient, posez vos questions en commentaires, consultez le site officiel de développement de Log Watcher et n'oubliez pas le man (man lwatch et man lwatch.conf) !

Ouvrir l'article

Authentification par Bluetooth : pam_blue

Je continue dans ma lancée sur le bluetooth dans Ubuntu, voir l'article précédent au sujet de la commande de votre musique par le biais de votre téléphone portable.

Combien de fois par jour saisissez-vous au clavier votre mot de passe ?
Personnellement, énormément, beaucoup trop, on dit souvent que les informaticiens sont des faignants, je vais une fois de plus le prouver en vous proposant une solution pour éviter d'avoir à taper votre mot de passe sur votre distribution Gnu/Linux favorite : Ubuntu, c'est bien sûr valable pour les autres...

pam_blue.png

Introduction

Sous Gnu/Linux, l'authentification de chaque utilisateur se fait par le biais de Pam (Pluggable Authentification Module), derrière ce terme qui peut paraitre barbare pour les p'tits nouveaux, se cache un puissant mécanisme d'authentification dont je ne m'étendrai pas plus car ce n'est pas le but de cet article, néanmoins, je vous invite à lire cette excellente introduction à PAM écrite par Sébastien Augereau.

pam_blue écrit Hagen Paul Pfeifer va donc vous permettre de vous authentifier par le biais du bluetooth qui est intégré dans un très grand nombre de périphériques (le groupe d'intérêt bluetooth prétend que le nombre de périphériques bluetooth à dépassé le milliard début novembre !), ainsi, au démarrage de votre gestionnaire de fenêtre préféré (gdm, kdm...que sais-je...), vous n'aurez qu'à taper votre nom d'utilisateur, la saisi du mot de passe étant remplacé par la détection d'un appareil bluetooth que vous aurez au préalable sélectionné.
Si le périphérique bluetooth n'est pas présent, le mot de passe vous sera alors demandé comme d'habitude au bout d'un laps de temps configurable.

Note :
Cet article à pour but de vous faire découvrir un outil très pratique mais qui peut se retourner contre vous si il est mal configuré, prenez garde à ce que vous faites, notamment, dans les fichiers de configuration de pam.

Comment ça marche ?

Tout comme une carte réseau ethernet ou Wi-Fi, un appareil bluetooth possède une adresse MAC, un identifiant unique composé de 6 octets et c'est grâce à cette dernière que nous allons justement pouvoir nous authentifier, en effet, cette adresse MAC n'est, en théorie, pas configurable (voir plus bas).

En exemple, je vous propose de découvrir les périphériques bluetooth à proximité de votre PC en saisissant la commande suivante (le paquet bluez-utils doit être installé au préalable) :

$ hcitool scan
Scanning ...
00:0A:59:BC:5F:09 Nokia 6680
00:12:29:C3:8D:FB Portable
$

Si votre périphérique bluetooth n'apparait pas, c'est probablement parce que la "visibilité bluetooth" de ce dernier n'est pas active, ainsi, il reste invisible aux commande de recherche "inquiry" (je vous conseille d'ailleurs fortement de laisser votre téléphone portable caché même si il est tout de même possible de le détecter avec les outils adéquats...)

Nous voyons apparaitre 2 périphériques bluetooth qui semble être tous les 2 des téléphones portables, vous noterez que le nom de l'appareil apparait à droite de l'adresse MAC.
Vous pouvez obtenir plus d'informations sur chaque périphérique en saisissant la commande suivante :

$ sudo hcitool info 00:0A:59:BC:5F:09
Requesting information ...
BD Address: 00:0A:59:BC:5F:09
Device Name: Nokia 6680
LMP Version: 1.2 (0x2) LMP Subversion: 0x4db
Manufacturer: Cambridge Silicon Radio (10)
Features: 0xbf 0xfe 0x0f 0x00 0x18 0x18 0x00 0x00
<3-slot packets> <5-slot packets> <encryption> <slot offset>
<timing accuracy> <role switch> <sniff mode> <RSSI>
<channel quality> <SCO link> <HV2 packets> <HV3 packets>
<u-law log> <A-law log> <CVSD> <paging scheme> <power control>
<transparent SCO> <AFH cap. slave> <AFH class. slave>
<AFH cap. master> <AFH class. master>
$

Installation

Les sources sont disponibles à cette adresse si vous désirez les compiler vous même mais j'ai créé des paquets (i386 uniquement et basé sur la dernière version 0.1.0) pour Dapper et Edgy.

Installez le paquet :

  • Depuis un navigateur de fichiers, cliquez deux fois sur le paquet, l'installeur de paquet gdebi s'ouvrira et vous permettra de l'installer.
  • En ligne de commande
    sudo dpkg -i libpam-blue_0.1.0-1_i386.deb

Voilà, c'est tout pour l'installation.

Configuration

Nous allons commencer par éditer le fichier de configuration de pam_blue qui se trouve être : /etc/security/pam_blue.conf, ouvrez le et vous obtiendrez ceci (j'ai volontairement coupé la fin du fichier pour garder uniquement ce qui nous intéresse) :


general {
# the normal timeout for scanning
# watch out for a to tiny timeslot for scanning
# values between 4 and 15 seconds are valid
timeout = 4;
}

# configuration for user toto
toto = {

# bluetooth device name
name = tux;

# bluetooth mac address
bluemac = 54:34:34:34:34:34;

# a seaparate timeout
timeout = 10;
}

[...]

Éditons ce fichier en spécifiant le nom de l'utilisateur qui doit être authentifié par pam_blue et remplaçons l'adresse MAC par celle que nous avons trouvé durant le scan, spécifions aussi le nom du périphérique bluetooth (vous pouvez mettre ce que vous désirez...)

[...]

# configuration pour l'utilisateur hugo
hugo = {

# bluetooth device name
name = Nokia 6680;

# bluetooth mac address
bluemac = 00:0A:59:BC:5F:09;

# a seaparate timeout
timeout = 10;
}

[...]

Voilà, la configuration de pam_blue s'arrête ici, maintenant, il faut spécifier au système que nous voulons nous authentifier par bluetooth à chaque fois que ce sera possible, dans le dossier /etc/pam.d se trouve les fichiers de configuration de pam, c'est là que nous allons dire à quel momemt nous voulons remplacer l'authentification basic par pam_blue.
Comme exemple, nous allons faire en sorte que l'authentification au gestionnaire de fenêtres Gnome se fasse par pam_blue, pour cela, nous allons éditer le fichier /etc/pam.d/gdm (pour kubuntu, éditez kdm, pour xubuntu, xdm...), sous Ubuntu Dapper, ce fichier ressemble à ceci :

#%PAM-1.0
auth requisite pam_nologin.so
auth required pam_env.so
@include common-auth
@include common-account
session required pam_limits.so
@include common-session
@include common-password

Nous allons le modifier afin qu'il ressemble à ceci :

#%PAM-1.0
auth requisite pam_nologin.so
auth required pam_env.so

auth sufficient pam_blue.so debug

@include common-auth
[...]

Voilà, c'est terminé, nous allons pouvoir tester le bon fonctionnement de pam_blue.

Mise en route

Fermez votre session gnome, une fois sur la mire de login, saisissez votre nom d'utilisateur et normalement, si tout s'est bien passé et si votre périphérique se trouve bien à proximité, vous n'aurez pas à saisir votre mot de passe et vous voilà, donc, loggué sur votre système.

Note :
Vous pouvez éditer les fichiers contenus dans /etc/pam.d pour des réglages plus poussés mais faites extrêmement attention à ce que vous faites, vous pourriez mettre en danger votre système (voir les commentaires), notamment, avec les connections distantes (rappelons que pam_usb à eu ce même souci).

Liens

Si vous voulez en savoir plus, voici une liste de liens sur les sujets que nous avons abordés :

Conclusion

Pour ma part, j'ai définitivement adopté pam_blue sur mon poste de travail chez moi, chose que je ne ferai sûrement pas n'importe où car toute la sécurité se base sur une adresse MAC qui est unique, mais, que l'on peut tout de même changer moyennant quelques recherches, chose que le Bluetooth SIG (Bluetooth Special Interest Group) voit d'ailleurs d'un très mauvais oeil...

Ouvrir l'article

« Page 4 / 6 »