Erralt

Opération non supportée, setfacl

Posted in Administration, Linux by erralt on 5 mai 2010

ACL

La gestion des ACL (Liste de contrôle d’accès) sous Unix n’est pas supportée de base.
Les permissions sur un fichier ou un répertoire restent limitées à donner des droits de lecture (r), écriture (w) et éxecution (x).

Nota : Petite précision, le droit d’éxécution d’un répertoire, indique que l’on peut le traverser mais qu’on ne peut pas lister son contenu.

Pour étendre ces droits d’accès à des utilisateurs ou groupes en particulier avec pour chacun des permissions spécifiques, il faut utiliser les ACL.

1/ Vérifier que votre noyau a le support des ACL

# grep -i acl /boot/config-`uname -r`
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_OCFS2_FS_POSIX_ACL=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_GENERIC_ACL=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFS_ACL_SUPPORT=m

Si les ACL sont prises en charge, les options CONFIG_XXX_FS_POSIX_ACL doivent être définie à « y » pour les systèmes de fichiers qui concernent votre machine.

2/ Installation du package pour la gestion des acl

Sur Ubuntu, le package est « acl ». Il fournit les outils « getfacl », « setfacl » et « chacl » ainsi que les pages manuels qui vont bien avec.

3/ Montage des partitions avec support des ACL

Lors d’un setfacl, si vous avez l’erreur « Operation not supported » ou « Opération non supportée« , c’est que vous n’avez pas activé l’option « acl » au montage de la partition.

L’utilisation des ACL sur une partition n’est pas une option par défaut. Il faut l’activer explicitement au montage de la partition.

# cat /etc/fstab
/dev/mapper/V0-HOME /home ext4 defaults,acl 0 2
# mount -o remount /home
La gestion des acl est maintenant opérationnelle sur votre partition.

Tagged with: , , , , ,

Make SFTP and umask working

Posted in Administration, LF, Linux by erralt on 5 mai 2010

In your file /etc/ssh/sshd_config use this line for SFTP working with custom umask :

Subsystem sftp /bin/sh -c 'umask 0002; exec /usr/lib/openssh/sftp-server'

loadaverage what’s this ?

Posted in Administration, Linux by erralt on 22 mars 2010

Follow this link if you want to know : Understanding load averages (Linux)

OpenLDAP, syncrepl via TLS/SSL

Posted in Administration, LF, Linux by erralt on 19 janvier 2010

I had to configure an Openldap consumer to replicate datas from my Openldap provider.

At the first time, my openldap server does not use slapd.conf directives but cn=config directives.
All the configuration examples i found on Internet, used slapd.conf. So, i had to find by myself howto translate slapd.conf directives in cn=config directives, especially syncrepl directives.


On the provider


1/ Add the attribute « olcModuleLoad » with value « syncprov »

the server will change your modification to :

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}syncprov
olcModulePath: /usr/lib/ldap

Equivalence with slapd.conf :

module syncprov


2/ Add overlay directive with some suboptions

– add this entry under a node of a database backend configuration, not under the master configuration directive (it doesn’t work, i made the mistake). Verify that you have bdb or hdb database type because syncrepl works only with one of them.

dn: olcOverlay={0}syncprov,olcDatabase={1}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
objectClass: olcSyncProvConfig
olcOverlay: {0}syncprov
olcSpCheckpoint: 100 10
olcSpSessionlog: 100

Adjust olcSpCheckpoint and olcSpSessionlog as you want.

Equivalence with slapd.conf :

overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100


3/ Add indexes for entryCSN and entryUUID :

on the node dn: olcDatabase={1}hdb,cn=config

olcDbIndex: entryCSN,entryUUID eq

Here are the options for syncprov translated in cn=config version :

syncprov-checkpoint -> olcSpCheckpoint
syncprov-sessionlog -> olcSpSessionlog
syncprov-nopresent -> olcSpNoPresent
syncprov-reloadhint -> olcSpReloadHint


On the consumer


Configuration of syncrepl :

On the node of your database configuration (for me : dn: olcDatabase={1}hdb,cn=config), add the following attribute and value :

olcSyncrepl: {0}rid=000 provider=ldap://provider.mydomain.net
searchbase=dc=mydomain.net
bindmethod=simple
binddn=cn=syncrepl,dc=mydomain.net
credentials=XXXXX
retry="60 +"
type=refreshOnly
interval=00:00:10:00

Equivalence with slapd.conf :

syncrepl rid=000 provider=ldap://provider.mydomain.net
searchbase=dc=mydomain.net
bindmethod=simple
binddn=cn=syncrepl,dc=mydomain.net
credentials=XXXXX
retry="60 +"
type=refreshOnly
interval=00:00:10:00

At this point, the provider directory could be replicated to the consumer directory in clear text. Verify that all work fine.


Using TLS/SSL

Prior to every TLS/SSL configuration of openldap server, add user « openldap » to « ssl-cert » group.

After, check that « openldap » user is able to read /etc/ssl/private/server.key file.

On the provider

Check if the provider is well configured for SSL or TLS connections.
To check SSL connection, launch this :

ldapsearch -H ldaps://provider.mydomain.net -x -W

To check TLS connection :

ldapsearch -H ldap://provider.mydomain.net -W -x -ZZ


On the consumer

* For SSL connection, in syncrepl configuration :
– change provider option to use ldaps:// instead of ldap://
– add these options :

tls_cert=/etc/ssl/certs/server.pem
tls_cacert=/etc/ssl/certs/cacert.org.pem
tls_key=/etc/ssl/private/server.key

* For TLS connection, in syncrepl configuration :
– keep provider option using ldap://
– add these options :

starttls=yes
tls_cert=/etc/ssl/certs/server.pem
tls_cacert=/etc/ssl/certs/cacert.org.pem
tls_key=/etc/ssl/private/server.key

* I got this error :

main: TLS init def ctx failed: -1

=> I had a look on http://readthefuckingmanual.net/2010/01 and my problem came from not following symbolic links, weird.

* I got this error :

main: TLS init def ctx failed: -207

=> It seems to be an error on checking SSL chain (have a look on this thread on Openldap list). I used certtool from GNUTLS package to create self signed certificate.

* I got this error :

main: TLS init def ctx failed: -69

=> remove the passphrase from the key.

Now, all work, but sometimes I have the error :

slap_client_connect: URI=ldaps://****.*****.net DN="cn=syncrepl,dc=*****.net" ldap_sasl_bind_s failed (-1)

and i don’t know if it’s critical. It seems to be not, it works again after.

———
Example of syncrepl which does work :

hdb_modify: updated id=00000032 dn="cn=*****,ou=users,dc=*****.net"
slapd[19443]: send_ldap_result: conn=-1 op=0 p=3
slapd[19443]: send_ldap_result: err=0 matched="" text=""
slapd[19443]: syncrepl_entry: rid=000 be_modify cn=*****,ou=users,dc=*****.net (0)
slapd[19443]: do_syncrep2: rid=000 LDAP_RES_SEARCH_RESULT
slapd[19443]: =>do_syncrepl rid=000
slapd[19443]: =>do_syncrep2 rid=000
slapd[19443]: do_syncrep2: rid=000 LDAP_RES_SEARCH_RESULT
slapd[19443]: do_syncrep2: cookie=rid=000,csn=20100109013243.742646Z#000000#000#000000
slapd[19443]: slap_queue_csn: queing 0x7f0b4ab5f9c0 20100109013243.742646Z#000000#000#000000
slapd[19443]: hdb_modify: dc=******.net
slapd[19443]: bdb_dn2entry("dc=******.net")
slapd[19443]: bdb_modify_internal: 0x0000001d: dc=*****.net
slapd[19443]:  entry_encode(0x0000001d):
slapd[19443]: <= entry_encode(0x0000001d):
slapd[19443]: hdb_modify: updated id=0000001d dn="dc=******.net"
slapd[19443]: send_ldap_result: conn=-1 op=0 p=3
slapd[19443]: send_ldap_result: err=0 matched="" text=""
slapd[19443]: slap_graduate_commit_csn: removing 0x7f0b4ab5fa00 20100109013243.742646Z#000000#000#000000

——–
If you have to control if slapd uses Gnutls or Openssl as a library :

# ldd $(which slapd)
        linux-vdso.so.1 =>  (0x00007fff2a318000)
        libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0x00007f103bb68000)
        liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x00007f103b95a000)
        libdb-4.7.so => /usr/lib/libdb-4.7.so (0x00007f103b5f8000)
        libodbc.so.1 => /usr/lib/libodbc.so.1 (0x00007f103b398000)
        libslp.so.1 => /usr/lib/libslp.so.1 (0x00007f103b186000)
        libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00007f103af6c000)
        libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0x00007f103acca000)  <=====
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x00007f103aa91000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x00007f103a878000)
        libltdl.so.7 => /usr/lib/libltdl.so.7 (0x00007f103a66e000)
        libwrap.so.0 => /lib/libwrap.so.0 (0x00007f103a463000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007f103a247000)
        libc.so.6 => /lib/libc.so.6 (0x00007f1039ed8000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00007f1039cbe000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007f1039aba000)
        libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0x00007f10398a9000)
        libz.so.1 => /lib/libz.so.1 (0x00007f1039692000)
        libgcrypt.so.11 => /lib/libgcrypt.so.11 (0x00007f103941a000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f103bdb1000)
        libgpg-error.so.0 => /lib/libgpg-error.so.0 (0x00007f1039216000)

Edit : pay attention to /usr/local/etc/openldap/ldap.conf, used by ldapsearch and seems to make syncrepl working easier.
Find with « strace ldapsearch -b dc=mydomain.net -x -ZZ », ldapsearch does not use /etc/ldap/ldap.conf on Ubuntu 9.10 (Karmic).

Pnp4nagios, adding a datasource to a rrd file (not only for pnp4nagios)

Posted in Administration, LF, Linux by erralt on 14 janvier 2010

Pnp4nagios

Pnp4nagios : http://docs.pnp4nagios.org/pnp-0.6/start is monitoring tool based on http://www.rrdtool.org for the data storage and on PHP for the frontend.

This tool parses performance datas provided by Nagios probes. They follow this format : ‘data name’=value; (more details on this page : http://nagiosplug.sourceforge.net/developer-guidelines.html#AEN201)

I use Pnp4nagios and i got this error (in Disk.xml file by example) because of adding a new data in the output of a Nagios probe.

<TXT>expected 10 data source readings (got 14) from 1263470356:794:378:49</TXT>

Natively, Pnp4nagios cannot add new datasource on the fly, RRDTool does not do it too. So, i had to search for an useful tool.

I found this post on a blog (http://michael.thegrebs.com/2007/12/30/adding-a-datastore-to-an-rrd-file) which made me a bit happy.

RRD

I installed RRD::Simple with CPAN. I had to force the installation of it because of an error on the perlpod.

# cpan
cpan> force install RRD::Simple

I took the script provided on the post and modify it to fit to my needs :

/root/rrd_add_datasource.pl :

#!/usr/bin/perl

use strict;
use warnings;

use RRD::Simple();

my $rrd_file = shift @ARGV;
my $DS_name = shift @ARGV;
my $DS_type = shift @ARGV;

my $rrd = RRD::Simple->new();

print "Processing $rrd_file...";
$rrd->add_source($rrd_file, $DS_name => $DS_type);
print " ok.\n";

I launched this command for each $DS_name i wanted (11, 12, 13 and 14) :

/root/rrd_add_datasource.pl $rrd_file $DS_name GAUGE

Finally, it works fine !

I hope my post will be useful for other people, and i repeat it’s not specific to Pnp4nagios.

/proc/meminfo, free

Posted in Linux by erralt on 18 décembre 2009
Tagged with: ,

.screenrc, .zshrc

Posted in LF, Linux by erralt on 18 décembre 2009

% cat ~/.screenrc

autodetach on
shell zsh
altscreen on
attrcolor b ".I"
defbce "on"
activity "activity: window ~%"
startup_message off
hardstatus on
caption always 
caption string "[%y-%m-%d %c] %-w%{=b bw} %t%{-}%+w %= %?%{=b rw}%2`%{-} %?%1` %H"
bindkey -k kD stuff \O33[3~  # gestion de la touche "suppr" 
# WordPress pose problème : remplacer \O33 (lettre o et 33) par \ + 033 (zéro33)
defscrollback 1000
sessionname erralt
defutf8 on
screen -t shell
screen -t logs
term xterm-color
# visual bell
vbell off

% cat ~/.zshrc

SAVEHIST=9999
HISTSIZE=9999
HISTFILE=~/.zsh/history
[[ -z $(functions zsh/terminfo) ]] && autoload -Uz zsh/terminfo

# couleurs
autoload -U colors 
colors
eval `dircolors $HOME/.zsh/colors`
autoload -U zutil
autoload -U compinit
autoload -U complist
compinit

bindkey "^?" backward-delete-char
bindkey '^[[1~' beginning-of-line
bindkey '^[[4~' end-of-line
bindkey -e

alias ls='ls --color=auto'
alias ll='ls -l'
alias la='ls -la'

setopt always_toend
setopt hist_ignore_dups

if [[ "$terminfo[colors]" -ge 8 ]]; then
    if [[ "$EUID" = "0" ]] || [[ "$USER" = 'root' ]]
            then
                base_prompt="root%{$fg[red]%}@%m%{$reset_color%} "
            else
                base_prompt="%n%{$fg[blue]%}@%m%{$reset_color%} "
            fi
        else
            base_prompt="%n@%m "
            post_prompt=""
        fi
PS1="$base_prompt%~
%#%{$reset_color%} "

% cat .zsh/colors

COLOR tty
# Commandes suplemantaires pour ls .
# -F = affiche '/' pour les dossier, '*' pour les executables, etc.
# -T 0 = don't trust tab spacing when formatting ls output.
OPTIONS -F -T 0
#couleur pour les fichiers de base
NORMAL 00 # global default, although everything should be something.
FILE 00 # normal file
DIR 01;34 # directory
LINK 01;35 # symbolic link
FIFO 40;33 # pipe
SOCK 01;35 # socket
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver

# pour les fichiers executables:
EXEC 01;32

# listez les extension comme par exemple '.gz' ou '.tar' que vous souhaitez que ls colore
# syntaxe : extension espace code de la couleur.
# Archives
.btm 01;32
.tar 01;31
.tgz 01;31
.arj 01;31
.gz 01;31
.bz2 01;31
.zip 01;31
.rar 01;31
.7z 01;31
.ace 01;31
.dar 01;31
.lzo 01;31
.tbz2 01;31
  
# Packages
.deb 01;35
.rpm 01;35
  
# Web
.htm 01;36
.php 01;36
.php3 01;36
.html 01;36
  
# Sources
.c 04;43;30
.cpp 04;43;30
.h 00;43;30
.hpp 00;43;30

Dell Vostro 1220 sur Ubuntu, problème écouteurs

Posted in Administration, Linux by erralt on 14 décembre 2009

Voilà le problème sur mon Dell Vostro 1220 du boulot avec une distrib Ubuntu 9.10 x64:
Quand je branche mes écouteurs, ils ne sont pas détectés et le son des haut-parleurs ne se coupe pas automatiquement.

Solution temporaire que j’ai trouvé sur cette page :
– Installer hda_analyser de chez Alsa
– Démarrer hda_analyser grâce à un « python run.pl »
– Puis dans le « Node[0x1f] » décocher « OUT » (modification faite en direct)
Le tour est joué.

Ps: je ne pense que la modification soit persistante.
Edit 2009/12/18 : La modification n’est persistante que durant le fonctionnement de la machine. Un redémarrage fait perdre la modification

Edit 2010/02/16 : la solution que j’ai trouvé ne fonctionne plus, Hda Analyzer est buggé !!
Mon autre solution est la suivante :

wget http://ftp.kernel.org/pub/linux/kernel/people/tiwai/misc/hda-verb/hda-verb-0.3.tar.gz
tar zxvf hda-verb-0.3.tar.gz
cd hda-verb-0.3
make
sudo cp hda-verb /usr/local/bin
sudo hda-verb /dev/snd/hwC0D0 0x1f SET_PIN_WIDGET_CONTROL 0x0     ## désactive les hauts parleurs principaux
sudo hda-verb /dev/snd/hwC0D0 0x1f SET_PIN_WIDGET_CONTROL 0x40   ## active les hauts parleurs principaux

Attention, la modification ne sera pas persistante au redémarrage.

Melvin

Posted in Ecriture by erralt on 28 mars 2009

Melvin habitait une petite maison d’une banlieue modeste des Etats-Unis. Une de celles construites dans ces années où il fallait construire vite pour permettre au plus grand nombre de se loger. Il ne se rappelait plus le nom de ce constructeur qui voulait proposer des maisons à faible coût pour en faciliter l’accession à la propriété. Elles étaient toutes faites des mêmes murs, du même bois et du même verre. Les habitants de cette banlieue apportaient une attention particulière à l’entretien du jardin et à la décoration de leur maison qui faisait que chacune d’elles étaient la leur. Melvin avait grandi ici. Il avait fait ses études non loin de là tout comme ses deux sœurs et son frère.

Aujourd’hui, Melvin, paisible et bien calé dans le siège de sa voiture était un peu plus heureux de rentrer chez lui qu’à l’habitude. Après l’école ses enfants devaient par une sympathique coïncidence être récupérés par les parents de leurs camarades de classe respectifs.
Une mère avait proposé à Sandy, la femme de Melvin, de prendre un de leurs enfants à la sortie de l’école. Isaac, le cadet, répondit qu’il en serait très content, oui, très et sa mère accepta l’offre. C’était une première pour Isaac comme pour sa mère. Quand Rosy entendit ça, elle dit à sa mère qu’elle aimerait bien faire pareil que son frère, qu’elle aimerait bien pouvoir jouer à la poupée chez une copine après l’école. Ces quelques mots s’échappèrent dans la petite foule massée devant la grille et allèrent voler jusqu’aux oreilles d’une autre mère, celle de la meilleure copine de Rosy. Le temps de demander à sa fille qui acquiesça et de faire un petit état de son emploi du temps à venir, elle s’approcha de Sandy et l’interpella : « Sun. Tiens, et si je prenais ta fille à la sortie de l’école, vendredi là ? »

Sun était un diminutif assez approximatif de Sandy, mais c’était ainsi qu’elle était perçue par le voisinage, un rayon de soleil. Elle s’y était faite avec le temps.
Rosy regarda sa mère, elle était très impatiente qu’elle accepte. Sun réfléchit un instant et se dit ma foi que ce n’était pas une mauvaise idée. Rosy n’avait pas école le lendemain, elle pouvait même dormir chez sa copine. Elles profiteraient toutes les deux de cette heure de plus pour jouer ensemble avant d’éteindre la lumière et se lover sous l’épaisse couette de leur lit. Entre temps, la mère du copain d’Isaac revint proposer une date qui était aussi ce vendredi qui arrivait. C’est ainsi que ce soir là, il n’y aurait ni Rosy ni Isaac au dîner, une soirée en couple qu’ils avaient presque oubliés.
Toujours assis au fond de son siège, Melvin se demandait comme il allait pouvoir lancer les hostilités. Quels mots, quelles phrases ? Sun avait toujours un mouvement de recul face aux plaisirs de la chair, un reste de complexe toujours ancré. Quand les mots étaient justes et bien amenés, elle savait s’ouvrir et lâcher prise. Quand Melvin sentait ce moment, quand son ego se gonflait un peu plus, il était certain qu’il obtiendrait ce qu’il désirait. Il savait qu’elle ne ferait pas ces premiers pas, il faisait donc ça pour eux deux. Il ne voulait pas utiliser irrémédiablement les mêmes gestes, les mêmes attentions et phrases pour arriver à ses fins. Il mettait un point d’honneur à être inventif. Sun ne jouait pas à ce jeu de manière volontaire mais elle appréciait les efforts qu’il pouvait fournir, surtout si peu souvent. Serait-ce dans le salon ? Pendant le repas, au hasard d’une discussion ? Ou encore dans la cuisine ? On verra.

Melvin était sur la dernière ligne droite qui l’amenait jusque chez lui. Le soleil lui fouettait les yeux à chaque arbre qu’il dépassait avec une allure et une assurance plutôt tranquille. Des rayons de soleil oranges c’est ce qui lui faisait aimer particulièrement son retour du travail. Un sentiment de plénitude l’envahissait, comme la fraîche odeur d’herbe coupée, à l’idée de passer cette soirée entre amoureux. Comme tous ses voisins, il arrêta sa voiture sur la rampe de garage, un pied dehors, oups, le frein à main oublié. La voiture n’avait pas fait cinq centimètres vers la route. Sun tendit l’oreille au son du moteur qui venait de s’arrêter, comme tant de fois qu’elle le reconnaissait. Melvin entra dans la maison. « Chérie, je suis rentré ! » faisant trainer volontairement les deux dernières syllabes, ça lui mettrait peut-être la puce à l’oreille. Qu’allait-il lui dire, lui demander ? Une intonation assez remarquable pour mettre les choses en suspens ?
Elle faisait à manger quand il la rejoignit dans la cuisine, il ouvrit le frigidaire, pris une bière et la bu en discutant avec elle. La petite fraîcheur avalée le détendit de sa journée qu’il avait passé, de discuter avec sa femme l’écoutant nonchalamment le fit patienter avant le repas.
Elle avait pris plaisir à ce qu’ils aient le ventre sainement rempli et s’étaient régalés. Sun, debout devant l’évier de la cuisine faisait le peu de vaisselle qui n’allait pas dans la machine. Melvin, se collant à elle, glissait lentement ses doigts sur son ventre qu’il aimait tant, il se demandait toujours de quel tissu il était fait, surtout quand il la touchait, nue sous les rayons du soleil de leur chambre à coucher. De la soie ou du satin, il se sentait chanceux. Elle s’affairait quand, soudain, une longue mèche de cheveux céda de son accroche auriculaire pour lui tomber devant les yeux. Elle balança la tête, les mains mouillées et pleines de mousse, elle ne pouvait lui faire reprendre sa place. Melvin, très vite, délogea sa main droite de sous son chemisier à fleurs pour, dans un geste précis et délicat, remettre la mèche à sa place.
Elle pris un reflet tout particulier à cet instant, du noir intense au bleuté d’une carapace d’insecte. C’était une petite correction que Melvin apportait à un tableau quasi parfait. Sun lui lança un regard aguicheur qui voulait dire beaucoup de choses. La vaisselle une fois finie, sur le trajet qui allait les mener, allongés, sur le canapé du salon, Melvin pensa un instant à sa fille. C’était fou à quel point elle ressemblait à sa mère, la même démarche, les mêmes expressions du corps. Allongés, les préliminaires avaient très largement commencés. Quelques uns de leurs vêtements glissèrent du canapé et se logèrent sous la table basse quand Melvin rippa avec son pied sur un de ces morceaux de coton aguicheurs. Sa femme n’avait pas vraiment de formes généreuses, il aimait plutôt les femmes aux silhouettes fines et peu charnues.

Étant adolescent, il avait aimé sa mère ainsi et lui reprochait ses quelques écarts alimentaires quand elle se laissait aller, ça la rendait disgracieuse à ses yeux. Il pensait même que si son père l’aimait comme un vrai mari, il devait prendre soin de sa femme autant que Melvin pouvait le faire. Il n’avait jamais compris son père. Il aimait sa femme de cette manière et ce soir, elle était parfaite.
Dans un soupir transpirant de plaisir la porte tonna sous l’impact répété d’un objet métallique. Le bruit était sourd, la porte épaisse, il ne voulait pas se lever, s’habiller et ouvrir. La persistance des impacts fit que cet objet, une seringue, traversa le bois pour y déverser un liquide incolore, inodore, il distillait la suffocation dans toute la pièce. Sa femme, apeurée, trouvait tout de même l’air nécessaire pour ses halètements. Melvin n’en avait plus. La porte céda, la pression de la personne sur la seringue était trop forte. Melvin reprit conscience au milieu d’une pièce froide carrelée des murs au plafond d’un vert pâle lui rappelant la salle de bains de sa grand-mère. La sensation de suffocation partit comme un éclair quand son esprit fut revenu à la réalité, il y avait en lui une tension énorme qui le fit sortir de sa torpeur. La tête basculée sur la droite, un tableau de visages lui faisait face. Il pouvait y distinguer dans un reflet, une seringue vidant un breuvage dans son bras gauche. Il sentait ses veines se contracter sur elles-mêmes, il sentait la rupture proche. Impossible de contrôler ses muscles, toutes commandes du cerveau étaient devenues inopérantes, c’était la suite logique du protocole.

Il voyait des visages durs, insatiables, des pleurs, sa femme, sa fille, son fils. Son regard croisa celui de sa fille reconnu dans son rêve quand la seringue fit céder la porte, quand elle la guidait vers son but. Il criait à l’intérieur, aucun bruit, aucune expression à l’extérieur, jusqu’à la fin, la froideur. Tels les fibres d’un câble de remontée mécanique qui s’effiloche, les veines rompirent leur attache, l’une après l’autre avec un bruit répété et irrégulier annonçant la chute. Le cri des âmes en proie à l’angoisse restèrent confinés dans la cabine, comme Melvin allongé dans son enveloppe charnelle.

Toute cette souffrance, il l’acceptait pour ce qu’il avait fait. Il n’avait pas tué, non, juste violé, elle n’avait que 10 ans et cela avait été répété, à son domicile. La peine capitale avait été prononcée il y avait maintenant presque dix ans. Dix ans sans pouvoir voir ses enfants, les câliner. Interdiction ordonnée par le juge. Sa femme venait le voir, toujours partagée dans ses visites qu’elle lui faisait. Oscillant entre son amour pour lui et la répugnance pour ses actes.

Les veines s’étaient détachées et extirpées de chacun de ses membres pour enlacer son cœur et le protéger du venin qu’il portait en lui. Elles seraient si fort que le cœur s’arrêta de battre. Dans le dernier souffle qu’il expira Sun dû à jamais ranger dans ses souvenirs la sensation que cet amour allait chercher en elle. Tout ceci mettait un terme à dix années de contrition, de rêves de pouvoir retrouver ses enfants et sa femme, unis dans leur petite maison chaleureuse. Dix années de sévices de la part de ses co-détenus, et oui, on pouvait être en prison et y couler de paisibles jours mais pas si on avait touché à un enfant. On le payait chaque jour à la même heure, dans la même cellule, celle dans laquelle on vivait. Ils lui avaient dit qu’ils allaient lui briser tous ses rêves, qu’il n’imagine pas un jour revenir vivre son ancienne vie, finie.

Les quelques derniers bips de l’électrocardiogramme résonnèrent dans la tête de Sandy et le son de l’arrêt, toutes respirations suspendues dans l’assemblée, déclenchèrent la dernière salve de larmes qu’il fallait maintenant sécher. Les larmes de Rosy étaient imprégnées de tristesse pour son père et de culpabilité d’être à l’origine de tout cela. Cela faisait dix ans que cela s’était arrêté et n’était plus certaine qu’il fallait en arriver à ce spectacle pour que son père ne puisse plus être à nouveau le bourreau de ses nuits.

Le rideau fut tiré sur cette pièce verte aux joints blancs. Dans cette pénombre, l’assistance sa leva, tourna le dos à cette représentation ultime et se dirigeait vers la sortie. Personne n’avait attendu pour féliciter l’acteur principal.

Poisson sauce au beurre blanc mais pas vraiment et sa fondue de poireaux

Posted in Cuisine by erralt on 26 février 2009

Du poisson :

Filets poissons

Des poireaux, les couper en petits morceaux, les faire revenir dans du beurre 5 minutes à feu doux, puis ajouter la crême fraîche (je vous laisse juge des quantités), laisser sur feu doux pendant 10 minutes.

Fondue de poireaux

La sauce. Du beurre, deux noix (de beurre), y mettre les oignons hachés ou coupés fins (ou échalotes), les glacer.
Ensuite mettre le vin blanc sec, noyer les oignons hachés avec, même un peu plus. Laisser revenir et réduire à feu moyen/doux. Puis mettre de la crème fraîche et laisser à nouveau réduire.

Sauce
[Photo avant crème fraîche.]

Servir le tout exactement comme sur la photo, sinon c’est pas bon.

poisson, sauce vin blanc crème fraîche. Fondue de poireaux.