Skip to content

Linux Attitude

Le libre est un état d'esprit

Archive

Archive for September, 2009

Niveau :      
Résumé :alias ssh='ssh macommande && ssh'

Aujourd'hui interceptons les commandes ssh. Alors ne commencez pas à penser que je suis passé du côté obscur de la force. Il y a des usage bien pratique ce script et je vous en proposerai un dans le prochain article.

Tout d'abord le problème : on veut pouvoir intercepter une commande ssh de façon silencieuse pour pouvoir utiliser la connexion qui va s'établir et lancer les commandes qu'on veut sur la machine distante. Cela implique une acceptation implicite de l'utilisateur puisqu'on va utiliser un simple alias pour "intercepter" la commande. Bien sûr rien ne vous empêche de modifier l'alias d'un ami selon les moyens qui sont à votre disposition ;-)

Principe de fonctionnement

Vous vous dites qu'il suffit de reprendre les paramètres de la commande et de la relancer. Non, habitués que vous êtes à l'agent ssh, vous avez oublié qu'en son absence l'utilisateur devra taper un mot de passe pour que la commande passe.

Pour récupérer la connexion ssh, openssh met à notre disposition tout ce qu'il faut. L'option s'appelle ControlMaster, elle crée une socket sur laquelle ssh peut ensuite se connecter pour ouvrir un nouveau terminal sans repasser toute la chaine de connexion au serveur.

La méthode est donc fait simple :

  • on intercepte la commande ssh (alias)
  • on lance notre script en background ($0 &)
  • on ajoute un option -M et -S si besoin à la commande ssh pour créer la socket
  • on garde les options originales et le processus original (exec ssh -M -S "$@")
  • dans le script en background on peut ensuite utiliser directement la socket en question pour faire ce qu'on veut

continue reading...

Ceci est un article invité, regardez en haut à gauche le nom de l'auteur ...

Niveau :      
Résumé :

Peut-être avez-vous déjà rêvé, lors de vos soirées d'été, de contrôler votre musique à distance avec votre téléphone portable dernière génération, ou tout simplement en étant gentiment assis dans votre chaise longue ? MPD peut être la solution.

Music Player Daemon (MPD)

MPD fait partie de cette famille de lecteurs de musique basés sur un modèle client/serveur (dans la même catégorie se trouve xmms2 par exemple). Globalement, le serveur lit les fichiers audio sur la machine hôte, et vous pouvez contrôler à distance (et bien sûr localement) la musique à diffuser. Ainsi, il faut bien comprendre que les seuls messages qui transitent sur le réseau sont des messages de contrôle, et qu'aucun streaming audio n'est mis en jeu.

Les intérêts d'un tel modèle sont :

  • bien sûr, le contrôle à distance par plusieurs machines
  • la lecture de musique indépendante de tout lecteur nécessitant un serveur X
  • le logiciel de contrôle (qu'on pourrait à tord appeler "lecteur") n'a pas à se soucier des divers plugins nécessaires à la lecture des fichiers audio ou encore de gérer la bibliothèque. MPD le fait déjà pour lui.

L'un des principaux désavantages est que cela rajoute un poil de complexité lorsqu'un simple "play music.mp3" peut lire un fichier audio, mais les avantage sus-cités méritent de s'y essayer.

Installation

Sous Debian et dérivés, tout simplement faire en tant que root :

$ aptitude install mpd

Il va ensuite falloir configurer votre nouveau joujou. On se basera pour l'exemple sur la configuration par défaut du paquet Debian, mais le tout peut être adapté pour d'autres distributions. Le fichier de configuration /etc/mpd.conf contient des informations sur, entre autres, :

  • le répertoire où se trouve toute votre musique. Par défaut, sous Debian, il se trouve dans /var/lib/mpd/music
  • l'utilisateur sous lequel tourne le daemon (mpd par défaut, toujours sous Debian). Je conseillerai de laisser cet utilisateur crée par le paquet, et de ne pas mettre root...
  • l'adresse de bind du serveur. "127.0.0.1" par défaut, à adapter si vous voulez contrôler votre daemon à distance ("0.0.0.0" par exemple)
  • contrôle d'accès sur la gestion de la playlist, la lecture de la bilbiothèque, etc... par mot de passe (se référer au man pour plus d'infos.)

continue reading...