<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>GNU Squad &#187; Planet Libre</title>
	<atom:link href="http://blog.gnusquad.org/tag/planet-libre/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.gnusquad.org</link>
	<description>Freedom computers</description>
	<pubDate>Sat, 22 Nov 2008 17:26:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Mettez de la couleur dans votre « prompt » !</title>
		<link>http://blog.gnusquad.org/2008/11/22/mettez-de-la-couleur-dans-votre-prompt/</link>
		<comments>http://blog.gnusquad.org/2008/11/22/mettez-de-la-couleur-dans-votre-prompt/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 16:26:01 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
		
		<category><![CDATA[Debian GNU/Linux]]></category>

		<category><![CDATA[Système]]></category>

		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=37</guid>
		<description><![CDATA[Le « prompt », que l'on désigne par « invite de commande » en français est une chaîne de caractères indiquant que l'ordinateur est prêt à recevoir une saisie au clavier.
Les informations qui suivent concernent le shell livré par défaut avec la plupart des distributions, le bien nommé « Bash ».
Le « prompt » est [...]]]></description>
			<content:encoded><![CDATA[<p>Le « prompt », que l'on désigne par « invite de commande » en français est une chaîne de caractères indiquant que l'ordinateur est prêt à recevoir une saisie au clavier.</p>
<p>Les informations qui suivent concernent le shell livré par défaut avec la plupart des distributions, le bien nommé « Bash ».</p>
<p>Le « prompt » est défini dans une variable d'environnement nommée « PS1 », celle-ci peut contenir des données statiques mais également des « séquences d'échappement » spéciales permettant d'afficher des données dynamiques comme le nom d'utilisateur courant, le répertoire courant, etc. Il est également possible de mettre de la couleur afin d'égayer un peu votre terminal et surtout de vous retrouvez dans vos différents comptes utilisateurs ou dans vos différentes machines.</p>
<p>Voici la liste des séquences d'échappement intéressantes :</p>
<pre>\h : le nom de la machine (hostname) jusqu'au premier point
\H : le nom de la machine complet
\j : le nombre de processus fils lancés en arrière plan
\e : caractère d'échappement (utile pour les couleurs)
\n : nouvelle ligne
\r : retour chariot
\u : le nom d'utilisateur courant
\w : le chemin complet du répertoire de travail courant
\W : le répertoire de travail courant
\$ : affiche un # si l'utilisateur est root sinon affiche un $
\[ : début d'une séquence de caractères non imprimables
\] : fin d'une séquence de caractères non imprimables
\D{format} : la date selon le format passé en paramètre (cf. la syntaxe de « strftime »)</pre>
<p>Les couleurs quant à elles sont des « séquences d'échappement ANSI » entourées d'un début et d'une fin de séquence de caractères non imprimables. Ces séquences ont un format bien déterminé : celui-ci commence par « <em>ESC[</em> » et se termine par « <em>m</em> ». Entre ces deux parties, il faut indiquer un code de mise en forme (gras, souligné, clignotement, etc) ainsi qu'un code pour la couleur désirée, les deux champs étant séparés par un point-virgule.</p>
<p>Voici la liste des mises en forme les plus courantes :</p>
<pre> 0 : normal
 1 : gras
 4 : souligné
 5 : clignotement
 7 : négatif
22 : désactivation du gras
24 : désactivation du souligné
25 : désactivation du clignotement</pre>
<p>Et la liste des couleurs :</p>
<pre>0 : noir
1 : rouge
2 : vert
3 : jaune
4 : bleu
5 : magenta
6 : cyan
7 : blanc</pre>
<p>À ces dernières doit être additionné un nombre afin de définir si l'on veut modifier la couleur du fond ou du texte tout en réglant l'intensité :</p>
<pre> 30 : couleur du texte, intensité normale
 40 : couleur du fond, intensité normale
 90 : couleur du texte, intensité élevée
100 : couleur du fond, intensité élevée</pre>
<p>Pour voir votre PS1 actuel, tapez simplement dans un shell :</p>
<pre><em>user@gnusquad</em>:~$ echo $PS1
\[\e[1;42m\]\u@\H\[\e[0;40m\]:\w\$</pre>
<p>Décortiquons cette ligne :</p>
<pre>\[   : début d'une séquence de caractères non imprimables (pour la couleur)
\e[  : début d'une séquence ANSI
1;42 : mise en forme grasse avec une couleur de fond verte intensité normale
m    : fin d'une séquence ANSI
\]   : fin d’une séquence de caractères non imprimables
\u   : nom d'utilisateur courant
@    : signe @
\H   : nom de la machine complète
\[   : début d'une séquence de caractères non imprimables
\e[  : début d'une séquence ANSI
0;40 : mise en forme normale avec une couleur de fond noir intensité normale
m    : fin d'une séquence ANSI
\]   : fin d’une séquence de caractères non imprimables
:    : signe :
\w   : chemin complet du répertoire de travail courant
\$   : caractère # si l'utilisateur est root sinon caractère $</pre>
<p>Pour tester vos créations (ici un fond rouge qui peut être pratique pour l'utilisateur « root »), il vous suffira de taper dans un shell :</p>
<pre><em>user@gnusquad</em>:~$ PS1='\[\e[1;41m\]\u@\H\[\e[0;40m\]:\w\$'
<strong>user@gnusquad</strong>:~$</pre>
<p>Une fois satisfait de votre « PS1 », vous n'aurez plus qu'à le mettre dans le fichier « <em>/etc/bash.bashrc</em> » (pour tous les utilisateurs) ou dans votre fichier «<em> ~/.bashrc</em> » (pour vous uniquement).</p>
<p>Notez au passage qu'il existe aussi trois autres variables d'environnement « PS2 », « PS3 » et « PS4 » que je vous laisse découvrir dans le man de bash ! <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>N'hésitez pas à proposer vos « prompt » en commentaires ! <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Sources :</p>
<ul>
<li><a href="http://man.gnusquad.org/bash/section-1/en/">Man page de Bash</a></li>
<li><a href="http://en.wikipedia.org/wiki/Escape_sequence">Séquence d'échappement</a></li>
<li><a href="http://man.gnusquad.org/strftime/section-3/en/">Man page de la fonction strftime</a></li>
<li><a href="http://en.wikipedia.org/wiki/ANSI_escape_code">Séquences d'échappement ANSI</a></li>
</ul>
<p><span id="more-37"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2008/11/22/mettez-de-la-couleur-dans-votre-prompt/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Captures d'écrans des applications disponibles dans Debian</title>
		<link>http://blog.gnusquad.org/2008/11/20/captures-d-ecrans-des-applications-debian/</link>
		<comments>http://blog.gnusquad.org/2008/11/20/captures-d-ecrans-des-applications-debian/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 18:45:56 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
		
		<category><![CDATA[Actualités]]></category>

		<category><![CDATA[Debian GNU/Linux]]></category>

		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=35</guid>
		<description><![CDATA[Le projet Debian vient de lancer un nouveau service destiné à recueillir les captures d'écrans d'un maximum d'applications  faisant parti de la dite distribution. Ces captures pourront ensuite être utilisées dans diverses applications, notamment les gestionnaires de paquets graphiques. Actuellement, seul Synaptic sait tirer parti de ces captures d'écrans mais nul doute que ses [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.gnusquad.org/wp-content/uploads/2008/11/screenshot_debian.png"><img class="alignleft size-medium wp-image-36" style="float:left; margin-right: 1em" title="http://screenshots.debian.net" src="http://blog.gnusquad.org/wp-content/uploads/2008/11/screenshot_debian-300x181.png" alt="" width="300" height="181" /></a>Le projet Debian vient de lancer un nouveau service destiné à recueillir les captures d'écrans d'un maximum d'applications  faisant parti de la dite distribution. Ces captures pourront ensuite être utilisées dans diverses applications, notamment les gestionnaires de paquets graphiques. Actuellement, seul Synaptic sait tirer parti de ces captures d'écrans mais nul doute que ses concurrents le supporteront d'ici peu.</p>
<p>Concernant le site en lui même, celui-ci est plutôt bien fichu : il est « classe » (admirez, entre autre, l'effet de zoom lors d'un clic sur une miniature <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) , sans fioritures, dispose d'un moteur de recherche, bref, c'est que du bonheur ! Rien de tel également pour découvrir de nouvelles applications intéressantes sans se fouler ! <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Les captures d'écrans sont envoyées par les utilisateurs en respectant certaines règles, celles-ci sont alors soumises à vérification et sont automatiquement publiées sous les mêmes termes de licence que le paquet Debian du logiciel.</p>
<p>Sources :</p>
<ul>
<li><a href="http://screenshots.debian.net/">Debian Screenshots<br />
</a></li>
<li><a href="http://screenshots.debian.net/guidelines">Règles à respecter pour l'envoi de captures d'écrans</a></li>
</ul>
<p><span id="more-35"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2008/11/20/captures-d-ecrans-des-applications-debian/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Automatiser une compilation après l'installation d'un nouveau noyau</title>
		<link>http://blog.gnusquad.org/2008/09/05/automatiser-une-compilation-apres-l-installation-d-un-nouveau-noyau/</link>
		<comments>http://blog.gnusquad.org/2008/09/05/automatiser-une-compilation-apres-l-installation-d-un-nouveau-noyau/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 04:25:43 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
		
		<category><![CDATA[Debian GNU/Linux]]></category>

		<category><![CDATA[Système]]></category>

		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=34</guid>
		<description><![CDATA[Quoi de plus énervant que de devoir lancer systématiquement la compilation d'un module après l'installation d'un nouveau noyau ? Une solution simple pour contourner ce problème est d'utiliser le fichier « /etc/kernel-img.conf » qui est consulté par les différents scripts d'installation des paquets pour les noyaux.
Voici le contenu typique de ce fichier :
# Kernel image [...]]]></description>
			<content:encoded><![CDATA[<p>Quoi de plus énervant que de devoir lancer systématiquement la compilation d'un module après l'installation d'un nouveau noyau ? Une solution simple pour contourner ce problème est d'utiliser le fichier « <em>/etc/kernel-img.conf</em> » qui est consulté par les différents scripts d'installation des paquets pour les noyaux.</p>
<p>Voici le contenu typique de ce fichier :</p>
<pre># Kernel image management overrides
# See kernel-img.conf(5) for details
do_symlinks = yes
relative_links = yes
do_bootloader = yes
do_bootfloppy = no
do_initrd = yes
link_in_boot = no
postinst_hook = update-grub
postrm_hook = update-grub
</pre>
<p>La variable qui nous intéresse est <strong>postinst_hook</strong>, elle contient le programme à lancer après l'installation du noyau. À celui-ci est passé deux paramètres : en premier la version du noyau et en second le chemin vers le noyau lui-même. Par défaut, <strong>update-grub</strong> est lancé permettant la mise à jour du menu de démarrage (« <em>/boot/grub/menu.lst</em> »).</p>
<p>Prenons pour l'exemple, la compilation du module propriétaire Nvidia.</p>
<p>Il nous faut donc créer un script effectuant la mise à jour de GRUB ainsi que cette compilation grâce à « <em>module-assistant</em> ». En théorie, ce n'est pas plus compliqué que ça, mais en pratique, on se rend compte que ça ne fonctionne pas, tout simplement parce que « <em>module-assistant</em> » a besoin d'installer des paquets et qu'une instance de « <em>dpkg</em> » est déjà en route pour l'installation du noyau&hellip; Une solution est donc de créer un script qui s'exécutera ultérieurement, j'ai choisi de créer un service qui sera lancé dès que la machine changera de niveau d'exécution (ce qu'on appelle le « <em>runlevel</em> »).</p>
<p>Voici le script, à adapter à vos besoins, qui générera le service :</p>
<pre>
<strong>root@gnusquad</strong>:~# vi /usr/local/sbin/postinst_kernel.sh

#!/bin/sh

FILE=/etc/init.d/update-kernel

# Compilation du module Nvidia pour la version $1 du noyau
echo "m-a a-i nvidia -l $1" >> $FILE

# Mise à jour de grub
echo "update-grub $@" >> $FILE

# Suppression du script une fois son travail terminé
echo "update-rc.d -f update-kernel remove" >> $FILE
echo "rm $FILE" >> $FILE

# Ajout des permissions d'exécution sur le script
chmod +x $FILE

# Ajout du script dans les différents runlevel
update-rc.d update-kernel defaults
</pre>
<p>Rendons le exécutable :</p>
<pre>
<strong>root@gnusquad</strong>:~# chmod +x $_
</pre>
<p>Et mettons à jour la variable « <em>postinst_hook</em> » du fichier de configuration :</p>
<pre>
<strong>root@gnusquad</strong>:~# vi /etc/kernel-img.conf

# See kernel-img.conf(5) for details
do_symlinks = yes
relative_links = yes
do_bootloader = yes
do_bootfloppy = no
do_initrd = yes
link_in_boot = no
postinst_hook = /usr/local/sbin/postinst_kernel.sh
postrm_hook = update-grub
</pre>
<p>Désormais, à l'installation d'un nouveau noyau, ce script sera lancé, celui-ci générera le fichier « <em>/etc/init.d/update-kernel</em> » qui sera, pour sa part, exécuté lors du prochain changement de niveau d'exécution (généralement lors du redémarrage ou de l'arrêt de la machine). Pensez à vérifier « <em>tty7</em> » (CTRL-ALT-F7) si vous étiez sous « <em>X</em> » histoire de voir la compilation s'effectuer au cas où &hellip;</p>
<p>Voilà, c'était pas plus dur que ça grâce à Debian ! <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
Pour information, d'autres hooks sont disponibles (<em>postrm</em>, <em>preinst</em>, <em>prerm</em>, &hellip;), il ne vous reste plus qu'à en faire bon usage ! <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Source :</p>
<ul>
<li><a href="http://man.gnusquad.org/kernel-img.conf/section-5/en/">Man kernel-img.conf</a></li>
<li><a href="http://man.gnusquad.org/init/section-8/en/">Man init</a></li>
<li><a href="http://fr.wikipedia.org/wiki/Run_level">Wikipédia : Run level</a></li>
</ul>
<p><span id="more-34"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2008/09/05/automatiser-une-compilation-apres-l-installation-d-un-nouveau-noyau/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Les 1ers Live CD Debian sont lancés !</title>
		<link>http://blog.gnusquad.org/2008/08/28/les-1ers-live-cd-debian-sont-lances/</link>
		<comments>http://blog.gnusquad.org/2008/08/28/les-1ers-live-cd-debian-sont-lances/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 15:49:03 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
		
		<category><![CDATA[Actualités]]></category>

		<category><![CDATA[Debian GNU/Linux]]></category>

		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=32</guid>
		<description><![CDATA[Après deux ans et demi de travail acharné, l'équipe « Debian Live » vient de sortir officiellement les 1ers Live CD (basés sur Lenny) de notre chère distribution.
Une attention toute particulière leur a été porté afin d'en faire des Live CD 100% Debian sans modifier plus que de raison les paquets installés afin d'éviter une [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://blog.gnusquad.org/wp-content/uploads/2008/08/debian_live.png'><img src="http://blog.gnusquad.org/wp-content/uploads/2008/08/debian_live-300x225.png" alt="" title="Debian Live" width="300" height="225" style="float:left; margin-right: 1em" class="alignleft size-medium wp-image-33" /></a>Après deux ans et demi de travail acharné, l'équipe « Debian Live » vient de sortir officiellement les 1ers Live CD (basés sur Lenny) de notre chère distribution.</p>
<p>Une attention toute particulière leur a été porté afin d'en faire des Live CD 100% Debian sans modifier plus que de raison les paquets installés afin d'éviter une n-ième distribution basée sur Debian mais patchée dans tous les sens.</p>
<p>Une tripotée d'images sont actuellement disponibles (iso-cd, net, usb-hdd, web) proposant soit Gnome, KDE, XFCE ou encore aucun environnement graphique, le tout pour les architectures i386 et AMD64.</p>
<p>Au menu de la prochaine fournée (beta 2) qui arrivera d'ici deux semaines, nous aurons le droit principalement à un DVD regroupant les différents environnements graphiques que l'on pourra choisir au démarrage ainsi qu'au support des architectures PowerPC et SPARC.</p>
<p>Sources :</p>
<ul>
<li><a href="http://lists.debian.org/debian-devel-announce/2008/08/msg00013.html">Debian Live Lenny Beta 1</a></li>
<li><a href="http://wiki.debian.org/DebianLive/Lenny/Todo">Roadmap Debian Live</a></li>
<li><a href="http://cdimage.debian.org/cdimage/lenny_live_beta1/">Images Debian Live</a></li>
</ul>
<p><span id="more-32"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2008/08/28/les-1ers-live-cd-debian-sont-lances/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Debian weather est de retour !</title>
		<link>http://blog.gnusquad.org/2008/06/25/debian-weather-est-de-retour/</link>
		<comments>http://blog.gnusquad.org/2008/06/25/debian-weather-est-de-retour/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 10:58:27 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
		
		<category><![CDATA[Actualités]]></category>

		<category><![CDATA[Debian GNU/Linux]]></category>

		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=25</guid>
		<description><![CDATA[Debian Weather est un service non-officiel de Debian permettant d'avoir une indication sur la bonne santé de sa distribution préférée. Cette bonne santé, exprimée en %, est calculée simplement en divisant le nombre de paquets cassés (où toutes les dépendances ne sont pas satisfaites) par le nombre de paquets disponibles (uniquement la section « main [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://edos.debian.net/weather/">Debian Weather</a> est un service non-officiel de Debian permettant d'avoir une indication sur la bonne santé de sa distribution préférée. Cette bonne santé, exprimée en %, est calculée simplement en divisant le nombre de paquets cassés (où toutes les dépendances ne sont pas satisfaites) par le nombre de paquets disponibles (uniquement la section « <em>main</em> »). Ce calcul est effectué chaque jour pour chaque distribution et pour chaque architecture, les résultats étant présentés sous forme d'icônes météo :</p>
<p><img src="http://blog.gnusquad.org/wp-content/uploads/2008/06/weather-clear.png" alt="" title="Beau temps &lt;= 1%" width="48" height="48" class="alignnone size-medium wp-image-26" style="vertical-align: middle" /> : % de paquets cassés &lt;= 1%</p>
<p><img src="http://blog.gnusquad.org/wp-content/uploads/2008/06/weather-few-clouds.png" alt="" title="Quelques nuages &lt;= 2%" width="48" height="48" class="alignnone size-medium wp-image-27" style="vertical-align: middle" /> : % de paquets cassés &lt;= 2%</p>
<p><img src="http://blog.gnusquad.org/wp-content/uploads/2008/06/weather-clouds.png" alt="" title="Nuages &lt;= 3%" width="48" height="48" class="alignnone size-medium wp-image-28" style="vertical-align: middle" /> : % de paquets cassés &lt;= 3%</p>
<p><img src="http://blog.gnusquad.org/wp-content/uploads/2008/06/weather-showers.png" alt="" title="Pluie &lt;= 4%" width="48" height="48" class="alignnone size-medium wp-image-29" style="vertical-align: middle" /> : % de paquets cassés &lt;= 4%</p>
<p><img src="http://blog.gnusquad.org/wp-content/uploads/2008/06/weather-storm.png" alt="" title="Tempête &lt;= 100%" width="48" height="48" class="alignnone size-medium wp-image-30" style="vertical-align: middle" /> : % de paquets cassés &lt;= 100%</p>
<p>Sources :</p>
<ul>
<li><a href="http://edos.debian.net/weather/">Debian Weather</a></li>
<li><a href="http://upsilon.cc/~zack/blog/posts/2008/06/debian_weather_is_back/">Debian weather is back</a></li>
</ul>
<p><span id="more-25"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2008/06/25/debian-weather-est-de-retour/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cookies d'Adobe Flash Player</title>
		<link>http://blog.gnusquad.org/2008/06/24/cookies-adobe-flash-player/</link>
		<comments>http://blog.gnusquad.org/2008/06/24/cookies-adobe-flash-player/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 16:01:44 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
		
		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[Logiciels divers]]></category>

		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=18</guid>
		<description><![CDATA[Vous utilisez Adobe Flash Player et vous pensiez vider complètement vos traces en utilisant la fonction idoine de votre navigateur ?
Si c'est le cas, vous aviez tort, allez faire un tour dans les répertoires suivants :

~/.macromedia/Flash_Player/#SharedObjects/xxxx/
~/.macromedia/Flash_Player/macromedia.com/support/flashplayer/sys

Vous y trouverez toute une liste de sites internet sur lesquels vous avez surfé et qui ont déposés un « [...]]]></description>
			<content:encoded><![CDATA[<p>Vous utilisez <em>Adobe Flash Player</em> et vous pensiez vider complètement vos traces en utilisant la fonction idoine de votre navigateur ?<br />
Si c'est le cas, vous aviez tort, allez faire un tour dans les répertoires suivants :</p>
<blockquote><p>
~/.macromedia/Flash_Player/#SharedObjects/xxxx/<br />
~/.macromedia/Flash_Player/macromedia.com/support/flashplayer/sys
</p></blockquote>
<p>Vous y trouverez toute une liste de sites internet sur lesquels vous avez surfé et qui ont déposés un « cookie Flash ».<br />
Faisons en sorte de contrôler ces cookies et commençons tout d'abord, par faire table rase de tous ces fichiers :</p>
<pre>
<em>user@gnusquad</em>:~$ rm -r .macromedia
</pre>
<p>Redémarrez votre navigateur s'il est lancé et configurons Flash Player afin qu'il arrête d'enregistrer ces cookies sans notre permission. Pour cela, il faut :</p>
<ul>
<li> aller sur <a href="http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager03.html">la page de configuration</a> du plugin présente sur le site d'Adobe</li>
<li>spécifier la quantité d'espace disque disponible pour les sites à « aucun »</li>
<li>décocher la case « Stockez les composants Flash courants pour réduire la durée des téléchargements »</li>
</ul>
<p><a href='http://blog.gnusquad.org/wp-content/uploads/2008/06/preferences_flash.png'><img src="http://blog.gnusquad.org/wp-content/uploads/2008/06/preferences_flash.png" alt="" title="Préférences Adobe Flash Player" width="394" height="269" class="alignnone size-full wp-image-22" /></a></p>
<p>Désormais, Flash Player vous demandera l'autorisation d'écrire les cookies mais malheureusement, même si vous lui dites non, celui-ci écrit tout de même quelques informations sur le site dans le deuxième répertoire ! J'ai essayé de ruser un peu en utilisant les droits du système de fichier pour empêcher Flash Player d'écrire dans le deuxième répertoire tout en lui laissant la main sur le premier mais sans succès : ce dernier reste vide à cause de l'échec de l'écriture dans le second répertoire ! <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>Une solution serait de positionner les droits d'écriture sur « <em>~/.macromedia</em> » uniquement lorsque l'on en a besoin mais c'est super lourd et c'est là que j'ai découvert l'extension Firefox « <em>Objection</em> » qui permet de visualiser le contenu des cookies Flash (techniquement parlant, on utilise le terme de <abbr title="Local Shared Object">LSO</abbr>) et de les supprimer :</p>
<p><a href='http://blog.gnusquad.org/wp-content/uploads/2008/06/objection_1.png'><img src="http://blog.gnusquad.org/wp-content/uploads/2008/06/objection_1.png" alt="" title="Objection - Onglet #1" width="488" height="243" class="alignnone size-full wp-image-23" /></a></p>
<p><a href='http://blog.gnusquad.org/wp-content/uploads/2008/06/objection_2.png'><img src="http://blog.gnusquad.org/wp-content/uploads/2008/06/objection_2.png" alt="" title="Objection - Onglet #2" width="508" height="609" class="alignnone size-full wp-image-24" /></a></p>
<p>Voilà, il ne vous reste plus qu'à penser à supprimer ces cookies Flash lorsque vous effacerez vos autres traces. <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Trois petites notes pour clôturer ce billet :</p>
<ul>
<li>l'équipe de Firefox est au courant du problème et verra ce qu'il est possible de faire</li>
<li>sachez que les cookies Flash sont partagés par les différents profils de Firefox (« <em>firefox --ProfileManager</em> »)</li>
<li>notez enfin qu'Adobe Flash Player n'est pas le seul plugin sachant lire du Flash, il y a GNU Gnash (100% libre) qui pour l'instant n'implémente pas toute la "norme" mais le projet, prioritaire aux yeux du projet GNU, avance à grands pas !</li>
</ul>
<p>Sources :</p>
<ul>
<li><a href="http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager03.html">Configuration d'Adobe Flash Player </a></li>
<li><a href="http://objection.mozdev.org/">Extension Firefox : Objection</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=290456">BugZilla : block/clear Flash cookies</a></li>
<li><a href="http://en.wikipedia.org/wiki/Local_Shared_Object">Local Shared Object</a></li>
<li><a href="http://www.gnu.org/software/gnash/">GNU Gnash</a></li>
</ul>
<p><span id="more-18"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2008/06/24/cookies-adobe-flash-player/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gestion des mime-types dans Subversion</title>
		<link>http://blog.gnusquad.org/2008/06/04/gestion-des-mime-types-dans-subversion/</link>
		<comments>http://blog.gnusquad.org/2008/06/04/gestion-des-mime-types-dans-subversion/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 04:31:21 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
		
		<category><![CDATA[Développement]]></category>

		<category><![CDATA[Gestionnaires de versions]]></category>

		<category><![CDATA[Subversion]]></category>

		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=19</guid>
		<description><![CDATA[Par défaut sous Subversion, l'heuristique utilisée pour détecter les mime-types est très basique ce qui est gênant lorsque l'on veut utiliser des fichiers (ex : des images) du dépôt via mod_dav_svn pour les intégrer dans un site.
Logiciels utilisés :

Subversion 1.4.6 (r28521)
GNU Bash 3.1.17
GNU Find 4.4.0
File 4.24

Voici une petite commande permettant de définir les mime-types des [...]]]></description>
			<content:encoded><![CDATA[<p>Par défaut sous Subversion, l'heuristique utilisée pour détecter les mime-types est très basique ce qui est gênant lorsque l'on veut utiliser des fichiers (ex : des images) du dépôt via <em><a href="http://svnbook.red-bean.com/en/1.4/svn.ref.mod_dav_svn.conf.html">mod_dav_svn</a></em> pour les intégrer dans un site.</p>
<p>Logiciels utilisés :</p>
<ul>
<li>Subversion 1.4.6 (r28521)</li>
<li>GNU Bash 3.1.17</li>
<li>GNU Find 4.4.0</li>
<li>File 4.24</li>
</ul>
<p>Voici une petite commande permettant de définir les mime-types des fichiers de l’arborescence dans laquelle nous nous trouvons (vous pouvez retirez la partie « <em>| bash > /dev/null</em> » pour afficher ce qui sera exécuté) :</p>
<pre>
<em>user@gnusquad</em>:~/projet$ find . -type f ! -regex ".*/\.svn/.*" -exec echo svn propset svn:mime-type \"\$\(file -bi '{}'\)\" {} \; | bash &gt; /dev/null
</pre>
<p>Il se peut que des messages d'erreurs apparaissent dûs à un non conformisme de Subversion vis à vis de la RFC 1521.</p>
<blockquote><p>svn: Le type MIME 'text/x-c++ charset=utf-8' ne se termine pas par des caractères alphanumériques</p></blockquote>
<p>Ce bug a été corrigé dans la révision 30795 de Subversion (tapez <em>svn --version | head -1</em> pour voir votre révision).</p>
<p>Sources :</p>
<ul>
<li> <a href="http://svnbook.red-bean.com/en/1.4/svn.advanced.props.html#svn.advanced.props.auto">Subversion : Automatic Property Setting</a></li>
<li><a href="http://www.faqs.org/rfcs/rfc1521.html">RFC 1521</a></li>
</ul>
<p><span id="more-19"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2008/06/04/gestion-des-mime-types-dans-subversion/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Faire du SFTP dans un chroot avec scponlyc</title>
		<link>http://blog.gnusquad.org/2008/05/29/faire-du-sftp-dans-un-chroot-avec-scponlyc/</link>
		<comments>http://blog.gnusquad.org/2008/05/29/faire-du-sftp-dans-un-chroot-avec-scponlyc/#comments</comments>
		<pubDate>Thu, 29 May 2008 04:39:11 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
		
		<category><![CDATA[Debian GNU/Linux]]></category>

		<category><![CDATA[Système]]></category>

		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=17</guid>
		<description><![CDATA[Commençons tout d'abord par expliquer les quelques termes alambiqués du titre de ce billet pour les néophytes :

SFTP signifie « Secure File Transfer Program », c'est un programme permettant de transférer des fichiers en utilisant une liaison chiffrée par SSH (Secure SHell) ; attention à ne pas confondre SFTP avec FTPS qui signifie pour sa [...]]]></description>
			<content:encoded><![CDATA[<p>Commençons tout d'abord par expliquer les quelques termes alambiqués du titre de ce billet pour les néophytes :</p>
<ul>
<li>SFTP signifie « <em>Secure File Transfer Program</em> », c'est un programme permettant de transférer des fichiers en utilisant une liaison chiffrée par SSH (<em>Secure SHell</em>) ; attention à ne pas confondre SFTP avec FTPS qui signifie pour sa part « <em>File Transfer Protocol over SSL</em> » !</li>
<li><em>chroot</em> est un programme permettant de changer le répertoire racine d'un processus afin que ce dernier n'ai accès qu'à une partie limitée de l'arborescence.</li>
<li><em>scponlyc</em> est un shell limité destiné uniquement aux transferts de fichiers dans un <em>chroot</em>.</li>
</ul>
<p>Le but du jeu est donc de permettre à un utilisateur de transférer des fichiers sur un serveur de manière sécurisée sans qu'il n'obtienne pour autant un shell et sans qu'il lui soit permit de voir l'arborescence du serveur. Nous utiliserons pour l'exemple, la version 4.7 d'OpenSSH livrée avec Debian Testing.</p>
<p>Démarrons par l'installation du paquet <em>scponly</em> :</p>
<pre><strong>root@gnusquad</strong>:~# aptitude install scponly
</pre>
<p>Un script permettant de créer un compte utilisateur destiné au SFTP chrooté a été installé dans le répertoire « <em>/usr/share/doc/scponly/setup_chroot/</em> », exécutons le en utilisant les réponses par défaut aux questions :</p>
<pre><strong>root@gnusquad</strong>:~# cd /usr/share/doc/scponly/setup_chroot/
<strong>root@gnusquad</strong>:/usr/share/doc/scponly/setup_chroot# gunzip setup_chroot.sh.gz
<strong>root@gnusquad</strong>:/usr/share/doc/scponly/setup_chroot# chmod +x setup_chroot.sh
<strong>root@gnusquad</strong>:/usr/share/doc/scponly/setup_chroot# ./setup_chroot.sh

Next we need to set the home directory for this scponly user.
please note that the user's home directory MUST NOT be writeable
by the scponly user. this is important so that the scponly user
cannot subvert the .ssh configuration parameters.

for this reason, a writeable subdirectory will be created that
the scponly user can write into.

Username to install [scponly]
home directory you wish to set for this user [/home/scponly]
name of the writeable subdirectory [incoming]

creating  /home/scponly/incoming directory for uploading files

Your platform (Linux) does not have a platform specific setup script.
This install script will attempt a best guess.
If you perform customizations, please consider sending me your changes.
Look to the templates in build_extras/arch.
 - joe at sublimation dot org

please set the password for scponly:
Enter new UNIX password:
Retype new UNIX password:
passwd : le mot de passe a été mis à jour avec succès
if you experience a warning with winscp regarding groups, please install
the provided hacked out fake groups program into your chroot, like so:
cp groups /home/scponly/bin/groups
</pre>
<p>Un compte utilisateur contenant les fichiers nécessaires au <em>chroot</em> a été créé dans « <em>/home/scponly/</em> », celui-ci est presque complet, il ne lui manque que le fameux « <em>/dev/null</em> » que nous allons créer à la main :</p>
<pre><strong>root@gnusquad</strong>:/usr/share/doc/scponly/setup_chroot# cd ~scponly
<strong>root@gnusquad</strong>:/home/scponly# mkdir dev
<strong>root@gnusquad</strong>:/home/scponly# mknod -m 666 dev/null c 1 3
</pre>
<p>Dernière étape avant que ça ne fonctionne : pour pouvoir utiliser le programme « <em>scponlyc</em> », il faut que celui-ci soit exécuté avec les droits <em>root</em> ; pour cela, il faut placer le « <em>sticky bit</em> » sur l'exécutable « <em>scponlyc</em> » :</p>
<pre><strong>root@gnusquad</strong>:/home/scponly# chmod u+s $(which scponlyc)
</pre>
<p>Il est maintenant temps de tester notre compte chrooté : nous allons créer un fichier et l'envoyer à l'utilisateur « <em>scponly</em> » grâce au répertoire accessible en écriture « <em>incoming</em> » :</p>
<pre><strong>root@gnusquad</strong>:/home/scponly# cd
<strong>root@gnusquad</strong>:~#  echo "coucou" &gt; test.txt
<strong>root@gnusquad</strong>:~#  scp test.txt scponly@localhost:incoming
scponly@localhost's password:
test.txt                                                           100%    7     0.0KB/s   00:00
</pre>
<p>Vérifions maintenant que le chroot fonctionne bien en utilisant « <em>sftp</em> » :</p>
<pre>
<strong>root@gnusquad</strong>:~# sftp scponly@localhost
Connecting to localhost...
scponly@localhost's password:
sftp> ls
bin       dev       etc       incoming  lib       usr
sftp> cd incoming
sftp> ls
test.txt
sftp> quit
</pre>
<p>Voilà, tout fonctionne correctement ! Notez cependant que toute cette procédure ne sera bientôt plus nécessaire avec les futures releases d'OpenSSH qui inclueront la possibilité de définir des chroot directement dans le fichier de configuration ce qui évitera par la même occasion de devoir mettre à jour son chroot lors de mise à jour de sécurité touchant les fichiers de celui-ci si l'on s'intéresse un tant soit peu à la sécurité ! <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Source :</p>
<ul>
<li><a href="http://undeadly.org/cgi?action=article&#038;sid=20080220110039">Chroot in OpenSSH</a></li>
</ul>
<p><span id="more-17"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2008/05/29/faire-du-sftp-dans-un-chroot-avec-scponlyc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Problème de tâche planifiée : méfiez-vous de run-parts</title>
		<link>http://blog.gnusquad.org/2008/05/20/probleme-de-tache-planifiee-mefiez-vous-de-run-parts/</link>
		<comments>http://blog.gnusquad.org/2008/05/20/probleme-de-tache-planifiee-mefiez-vous-de-run-parts/#comments</comments>
		<pubDate>Tue, 20 May 2008 10:51:48 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
		
		<category><![CDATA[Debian GNU/Linux]]></category>

		<category><![CDATA[Système]]></category>

		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=16</guid>
		<description><![CDATA[J'ai créé, il y a quelques temps, un petit script répondant au doux nom de « bonne_bouffe.sh » (m'avertissant par mail lorsqu'il y a de la pizza succulente à la brasserie du coin  ) que je voulais exécuter une fois par semaine ; j'ai donc créé une tâche planifiée (un « cron job ») [...]]]></description>
			<content:encoded><![CDATA[<p>J'ai créé, il y a quelques temps, un petit script répondant au doux nom de « <em>bonne_bouffe.sh</em> » (m'avertissant par mail lorsqu'il y a de la pizza succulente à la brasserie du coin <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ) que je voulais exécuter une fois par semaine ; j'ai donc créé une tâche planifiée (un « <em>cron job</em> ») en créant un lien symbolique vers mon script dans le répertoire « <em>/etc/cron.weekly</em> », jusque là tout va bien sauf qu'au bout de quelques semaines je n'avais toujours rien reçu !</p>
<p>Aujourd'hui, je décide donc d'aller jeter un œil dans les logs sans y trouver de traces d'exécution de mon script alors que ses petits copains dans le répertoire étaient eux, bien exécutés !</p>
<p>Que diable se passe t-il ? Pour le savoir, il faut chercher la manière dont sont lancées ces tâches planifiées. Un petit tour dans le fichier « <em>/etc/crontab</em> » nous montre ceci :</p>
<pre># /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / &amp;&amp; run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / &amp;&amp; run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / &amp;&amp; run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / &amp;&amp; run-parts --report /etc/cron.monthly )
</pre>
<p>Nous voyons donc que les tâches sont exécutées grâce à la commande « <em>run-parts</em> ». Intéressons-nous au manuel de cette commande : « <em>man run-parts</em> ».</p>
<blockquote><p>run-parts exécute tous les fichiers exécutables situés dans répertoire, et dont le nom  satisfait  les contraintes  décrites  ci-dessous.  Les autres fichiers sont ignorés.</p>
<p>Si  ni  l’option  --lsbsysinit  ni l’option --regex n’est pas utilisée, alors les noms ne doivent être constitués que de lettres minuscules ou majuscules,  de chiffres, de tirets de soulignement (« underscore ») ou de tirets.</p></blockquote>
<p>Le problème apparaît alors clairement : notre lien symbolique, reprenant le nom du script, contient un point et n'est donc pas exécuté !</p>
<p>Deux solutions s'offrent alors à nous pour résoudre ce problème : </p>
<ul>
<li>
ajouter l'option « <em>--lsbsysinit</em> » à « <em>run-parts</em> » pour les 4 lignes présentes dans « <em>/etc/crontab</em> »
</li>
<li>
renommer le lien symbolique « <em>bonne_bouffe.sh</em> » en « <em>bonne_bouffe</em> »
</li>
</ul>
<p>Personnellement, j'ai choisi la seconde solution afin de coller à la façon de faire de Debian <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2008/05/20/probleme-de-tache-planifiee-mefiez-vous-de-run-parts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pour en finir, MySQL sera un peu plus libre</title>
		<link>http://blog.gnusquad.org/2008/05/19/pour-en-finir-mysql-sera-un-peu-plus-libre/</link>
		<comments>http://blog.gnusquad.org/2008/05/19/pour-en-finir-mysql-sera-un-peu-plus-libre/#comments</comments>
		<pubDate>Mon, 19 May 2008 10:52:13 +0000</pubDate>
		<dc:creator>Sylvain</dc:creator>
		
		<category><![CDATA[Actualités]]></category>

		<category><![CDATA[Base de données]]></category>

		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[Planet Libre]]></category>

		<guid isPermaLink="false">http://blog.gnusquad.org/?p=14</guid>
		<description><![CDATA[Dans un précédent billet, nous apprenions qu'il y allait avoir du changement au niveau de la distribution de MySQL sans savoir si cela allait être en faveur ou en défaveur du libre.
MySQL, sous la pression de Sun, a tranché et Kaj Arnö, vice président en charge de la communauté open source, nous informe que MySQL [...]]]></description>
			<content:encoded><![CDATA[<p>Dans un précédent billet, nous apprenions qu'il y allait avoir du changement au niveau de la distribution de MySQL sans savoir si cela allait être en faveur ou en défaveur du libre.<br />
MySQL, sous la pression de Sun, a tranché et Kaj Arnö, vice président en charge de la communauté open source, nous informe que MySQL Server est, et restera complètement fonctionnel et open source ainsi que ses différents connecteurs et moteurs de tables. À cela s'ajoute quelques nouveautés très intéressantes axées sur les sauvegardes qui seront également placées en open source :</p>
<ul>
<li>les fonctionnalités de pending backup</li>
<li>le driver MyISAM natif permettant de mixer des backups logiques et physiques</li>
<li>les fonctionnalités de chiffrement et de compression lors des backups</li>
</ul>
<p>Nous voilà donc rassurés ! <img src='http://blog.gnusquad.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Sources :</p>
<ul>
<li><a href="http://blog.gnusquad.org/2008/05/03/mysql-un-peu-moins-ou-un-peu-plus-libre/">MySQL : un peu moins ou un peu plus libre ?</a></li>
<li><a href="http://blogs.mysql.com/kaj/2008/05/06/mysql-server-is-open-source-even-backup-extensions/">MySQL Server is open source even backup extensions</a></li>
<li><a href="http://en.oreilly.com/mysql2008/public/asset/attachment/2126">Présentation : MySQL Online Backup</a> (<a href="http://blog.gnusquad.org/wp-content/uploads/2008/05/mysql-online-backup_-an-in-depth-introduction-presentation.ppt">téléchargement local</a>)</li>
</ul>
<p><span id="more-14"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gnusquad.org/2008/05/19/pour-en-finir-mysql-sera-un-peu-plus-libre/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
