<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog ntic de revolunet &#187; Linux</title>
	<atom:link href="http://blog.revolunet.com/index.php/conseil.intranet/actu-informatique/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.revolunet.com</link>
	<description>Blog des Nouvelles Technologies de l'Information et de la Communication</description>
	<lastBuildDate>Tue, 10 Aug 2010 13:02:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Premiers pas Git : team workflow</title>
		<link>http://blog.revolunet.com/index.php/actu-informatique/linux/premiers-pas-git-team-workflow</link>
		<comments>http://blog.revolunet.com/index.php/actu-informatique/linux/premiers-pas-git-team-workflow#comments</comments>
		<pubDate>Tue, 24 Nov 2009 12:39:25 +0000</pubDate>
		<dc:creator>Juju</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=348</guid>
		<description><![CDATA[GIT est un logiciel de gestion de version, crée par Linus Torvalds, qui permet à plusieurs développeurs de travailler ensemble sur les mêmes projets, et de gérer toute l&#8217;évolution du code du projet (le workflow) voir même le déploiement et la maintenance des applications.
L&#8217;utilisation de GIT peut être assez déroutante au premier abord, notamment pour les habitués à SVN, mais [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">GIT est un<a href="http://fr.wikipedia.org/wiki/Logiciel_de_gestion_de_versions" target="_blank"> logiciel de gestion de version</a>, crée par <a href="http://fr.wikipedia.org/wiki/Linus_Torvalds" target="_blank">Linus Torvalds</a>, qui permet à plusieurs développeurs de travailler ensemble sur les mêmes projets, et de gérer toute l&#8217;évolution du code du projet (le workflow) voir même le déploiement et la maintenance des applications.</p>
<p style="text-align: left;">L&#8217;utilisation de GIT peut être assez déroutante au premier abord, notamment pour les habitués à SVN, mais on devient très vite accro à la gestion des branches de GIT , qui permet d&#8217;organiser correctement son propre code, celui d&#8217;une équipe et de suivre l&#8217;évolution du projet. GIT possède son propre vocabulaire, j&#8217;espère vous éclairer un peu avec ces premiers pas. Pour tous les détails, consultez les livres online : <a href="http://progit.org/book/" target="_blank">Pro Git</a> et <a href="http://alx.github.com/gitbook" target="_blank">GIT community Book</a>.</p>
<p style="text-align: left;">Quelques avantages de git :</p>
<ul>
<li>Souplesse dans la gestion des branches</li>
<li>Décentralisé</li>
<li>Pas de serveur, un accès SSH suffit</li>
<li>Un seul dossier .git à la racine du projet</li>
<li>Le développeur peut créer ses propres branches locales</li>
<li>Espace disque et transferts réseau très limités</li>
</ul>
<div class="mceTemp">
<dl class="wp-caption alignleft" style="width: 451px;">
<dt class="wp-caption-dt"><a href="http://progit.org/book/ch3-2.html"><img title="pro git example" src="http://progit.org/figures/ch3/18333fig0317-tn.png" alt="pro git example" width="441" height="234" /></a></dt>
</dl>
</div>
<p>A contrario de SVN, les branches sont stockées dans le même répertoire de travail, et vous switchez de l&#8217;une à l&#8217;autre grâce la commande &#8216;git checkout&#8217;. cette commande remplace/supprimer et déplace les fichiers à la demande. Pour pouvoir changer de branche, tous les changements doivent être commités.</p>
<p>Dans un cas classique, plusieurs développeurs vont travailler sur le même projet, chacun sur sa branche, et l&#8217;un d&#8217;eux (le &#8216;dictator&#8217;) sera chargé de réintégrer toutes les modifs dans le &#8216;master&#8217; (via des &#8216;merge&#8217;). Une fois ces modifs publiées, chaque développeur pourra alors les réintégrer dans son propre code. Ce workflow est un exemple de base, de nombreux cas plus évolués sont possibles.</p>
<p>Si vous avez besoin de centraliser votre repository, vous pouvez utiliser un simple serveur avec accès SSH pour vos users, ou <a href="http://GitHub.com" target="_blank">GitHub.com</a> qui offre des repos gratuits pour les projets open source et 12$/mois pour 5 repos privés si besoin. L&#8217;avantage de cette dernière solution est sa facilité de mise en oeuvre ainsi que l&#8217;accès à l&#8217;excellente interface web de GitHub qui permet de consulter le code, les commits, d&#8217;avoir des stats, un systeme de wiki, but tracker&#8230; De plus, GitHub propose une fonction de Click&amp;Fork qui permet de forker nimporte quel projet en un clic. La mise à jour du code peut ensuite se faire dans les deux sens&#8230; ce qui est parfait pour le modèle open source.</p>
<p>Une fois l&#8217;installation de git effectuée, récupérez un projet :</p>
<p>pour un projet hébérgé sur un serveur SSH :</p>
<div class="codesnip-container" ># git clone jul@revolunet.com:/var/git/KillerApp.git</div>
<p>pour un projet hébérgé sur GitHub :</p>
<div class="codesnip-container" ># git clone git://github.com/julienb/KillerApp.git</div>
<p>Dans les deux cas,  cela crée un dossier KillerApp.git avec le projet et la branche &#8216;master&#8217; uniquement.</p>
<div class="codesnip-container" ># git branch<br />
* master</div>
<p>Si vous voulez rappatrier d&#8217;autres branches du serveur distant (origin), il faut les ajouter manuellement ;</p>
<div class="codesnip-container" ># git checkout &#8211;track -b juju origin/juju<br />
# git checkout &#8211;track -b gary origin/gary</div>
<p>Ceci crée les branches locales, qui sont &#8216;linkées&#8217; à leurs branches remotes respectives</p>
<p>On va passer dans la branche &#8216;juju&#8217;</p>
<div class="codesnip-container" ># git checkout juju</div>
<div class="codesnip-container" ># git branch<br />
gary<br />
* juju<br />
master</div>
<p>l&#8217;étoile indique qu&#8217;on travaille dans la branche &#8216;juju&#8217;</p>
<p>Pour créer une nouvelle branche locale &#8216;newfeature&#8217; depuis la <strong>branche actuelle</strong> et se déplacer dedans :</p>
<div class="codesnip-container" ># git checkout -b newfeature<br />
# Switched to a new branch &#8220;newfeature &#8220;</div>
<p>Attention, la branche est issue par defaut de la branche en cours, et pas du &#8216;master&#8217;</p>
<p>Pour changer de branche :</p>
<div class="codesnip-container" ># git checkout juju</div>
<div class="codesnip-container" ># git branch<br />
gary<br />
* juju<br />
master<br />
newfeature</div>
<p>Pour repasser dans la branche newfeature :</p>
<div class="codesnip-container" ># git checkout newfeature</div>
<p>Une fois dans votre branche de dev, faites des git commit dès que nécessaire. Les fichiers modifies/ajoutes doivent etre ajoutés a l&#8217;index GIT via :</p>
<div class="codesnip-container" ># git add fichier.py fichier2.py</div>
<p>ou, pour ajouter automatiquement tous les fichiers :</p>
<div class="codesnip-container" ># git commit -a </div>
<p>Il faut savoir que GIT est complètement <strong>décentralisé </strong>et que les branches locales/remote ne sont pas forcement synchronisées (&#8217;trackées&#8217;). Dans notre exemple, la branche &#8216;newfeature&#8217; n&#8217;existe qu&#8217;en local et ne pourra pas etre &#8216;pushée&#8217; sur le remote, sauf si on spécifie manuellement un lien vers un repo distant.</p>
<p>Une fois la &#8216;newfeature&#8217; codée, le développeur doit la réintégrer dans sa branche;  il doit bien sur d&#8217;abord commit son code, puis faire un merge :</p>
<p>Il passe d&#8217;abord dans sa branche :</p>
<div class="codesnip-container" ># git checkout juju</div>
<p>Puis merge le code de sa &#8216;newfeature&#8217;</p>
<div class="codesnip-container" ># git merge newfeature</div>
<p>Maintenant, la branche juju contient le code de newfeature et il a été commit automatiquement (en local).</p>
<h2><strong>Envoi de notre nouveau code sur le repository distant</strong></h2>
<h3><strong><strong>Envoyer sur la branche &#8216;juju&#8217;</strong></strong></h3>
<div class="codesnip-container" ># git checkout juju</div>
<p>Il peut envoyer son code sur le remote (cela pushera la branche juju vers la branche remote &#8216;juju&#8217;) :</p>
<div class="codesnip-container" ># git push</div>
<p>Un responsable se chargera alors de merger la branche juju dans la branche master et de mettre a jour le master sur le repo central.</p>
<h3><strong>Envoyer sur la branche &#8216;master&#8217; directement</strong></h3>
<p>Éventuellement, le développeur peut intégrer ses modifs directement dans la branche &#8216;master&#8217; :</p>
<p>Il passe sur la branch master :</p>
<div class="codesnip-container" ># git checkout master</div>
<p>Il récupère déjà le code du master actuel :</p>
<div class="codesnip-container" ># git pull</div>
<p>Puis merge sa branche dedans :</p>
<div class="codesnip-container" ># git merge juju</div>
<p>Puis envoi sur le remote :</p>
<div class="codesnip-container" ># git push</div>
<h2><strong>Récupération de code sur le repository distant</strong></h2>
<p>Si le developpeur veut réintégrer dans <strong>sa branche</strong> les mises à jour de ses collègues :</p>
<div class="codesnip-container" ># git checkout juju</div>
<p>récupérer toutes les branches distantes configurées :</p>
<div class="codesnip-container" ># git fetch</div>
<p>merger le code du master dans la branch actuelle</p>
<div class="codesnip-container" ># git merge origin/master</div>
<p>La branche &#8216;juju&#8217; est alors mise à jour avec le nouveau code issu de &#8216;master&#8217; (le trunk)</p>
<h2>Quelques commandes utiles :</h2>
<ul>
<li>Lister les branches sur le repo distant :</li>
</ul>
<div class="codesnip-container" ># git branch -r</div>
<ul>
<li>Créer une nouvelle branche &#8216;daniel&#8217;  locale, la créer aussi sur le remote, et la tracker : (double &#8211; before &#8216;track&#8217;)</li>
</ul>
<div class="codesnip-container" ># git push origin origin:refs/heads/daniel<br />
# git fetch origin<br />
# git checkout &#8211;track -b daniel origin/daniel<span style="font-family: monospace; line-height: 16px; font-size: 12px; white-space: pre; "><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px; "></div>
<p></span></span></p>
<ul>
<li>Sauvegarder en mémoire les modifs depuis le dernier checkout pour les réappliquer dans une autre branche. Attention, &#8216;git stash&#8217; reset votre branch au dernier commit (HEAD) :</li>
</ul>
<div class="codesnip-container" ># git stash # enregistre vos modifs<br />
# git checkout -b newfeature #crée une nouvelle branche<br />
# git stash apply # re-apply les modifs dans la nouvelle branche &#8216;newfeature&#8217;</div>
<ul>
<li><strong>Créer</strong> un nouveau repository local vide : (double &#8211; before &#8216;bare&#8217;)</li>
</ul>
<div class="codesnip-container" ># mkdir /pub/my-repo.git<br />
# cd /pub/my-repo.git<br />
# git &#8211;bare init</div>
<ul>
<li>Express local commit :</li>
</ul>
<div class="codesnip-container" ># git commit -a -m &#8220;killer feature ready&#8221;</div>
<ul>
<li>Afficher un diff des modifications</li>
</ul>
<div class="codesnip-container" ># git diff &#8211;color</div>
<ul>
<li>Afficher un logdes commits</li>
</ul>
<div class="codesnip-container" ># git log</div>
<h2><strong>Tips :</strong></h2>
<ul>
<li>Créez un fichier <a href="http://www.kernel.org/pub/software/scm/git-core/docs/gitignore.html" target="_blank">.gitignore</a> pour ignorer des fichiers/dossiers (ce fichier peut etre different par branche)</li>
<li>Utilisez <a href="http://www.revolunet.com/snippets/snippet/afficher-la-branche-git-en-cours-dans-votre-prompt-shell" target="_blank">ce script dans votre .bashrc</a> pour afficher la branche dans votre prompt</li>
<li>Consultez <a href="http://stackoverflow.com" target="_blank">stackoverflow.com</a> il y a <a href="http://stackoverflow.com/questions/347901/what-are-your-favorite-git-features-or-tricks" target="_blank">pleins</a> <a href="http://stackoverflow.com/questions/tagged?tagnames=git&amp;sort=votes&amp;pagesize=30" target="_blank">d&#8217;idées</a> <a href="http://stackoverflow.com/questions/tagged?tagnames=github&amp;sort=votes&amp;pagesize=30" target="_blank">intéressantes</a></li>
<li>SVN GIT Crach course : <a href="http://git.or.cz/course/svn.html">http://git.or.cz/course/svn.html</a></li>
<li><a href="http://www-cs-students.stanford.edu/~blynn/gitmagic/" target="_blank">GIT magic</a></li>
<li><a href="http://osteele.com/archives/2008/05/my-git-workflow#fn1" target="_blank">Exemple de workflow, avec des graphiques instructifs</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/actu-informatique/linux/premiers-pas-git-team-workflow/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>upgrade sécurité dedibox</title>
		<link>http://blog.revolunet.com/index.php/general/upgrade-securite-dedibox</link>
		<comments>http://blog.revolunet.com/index.php/general/upgrade-securite-dedibox#comments</comments>
		<pubDate>Fri, 15 Feb 2008 18:54:08 +0000</pubDate>
		<dc:creator>Juju</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[actu informatique]]></category>
		<category><![CDATA[hack]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/index.php/general/upgrade-securite-dedibox</guid>
		<description><![CDATA[Comme beaucoup d&#8217;admins qui se pensent contienteux, j&#8217;ai du, suite à la publication d&#8217;un exploit local assez impressionnant la semaine derniere, mettre à jour mes debian pour éviter toute prise de contrôle. Cette faille afffecte tous les kernels linux 2.6.17 à 2.6.24.1 soit un très très grand nombre de systemes. Il suffit à l&#8217;attaquant d&#8217;une [...]]]></description>
			<content:encoded><![CDATA[<p>Comme beaucoup d&#8217;admins qui se pensent contienteux, j&#8217;ai du, suite à la <a href="http://www.milw0rm.com/exploits/5092">publication d&#8217;un exploit local assez impressionnant</a> la semaine derniere, mettre à jour mes debian pour éviter toute prise de contrôle. Cette faille afffecte tous les kernels linux 2.6.17 à 2.6.24.1 soit un très très grand nombre de systemes. Il suffit à l&#8217;attaquant d&#8217;une petite faille PHP pour prendre le controle TOTAL de la machine.</p>
<p>Voici une procédure simplifiée que j&#8217;ai suivie sur une debian avec un kernel dedibox r5 :</p>
<p>* <b>apt-get update &#038;&#038; apt-get upgrade</b> : mettre a jour les packages pour le nouveau noyau. Attention, cette étape peut vous forcer à passer à MySQL5 et PHP5</p>
<p>* <b>installation du nouveau kernel : </b> apt-get install linux-image-2.6.18-6-686</p>
<p>* <b>reboot</b> puis <b>uname -r</b> pour voir si tout va bien : Linux xx_xx 2.6.18-6-686</p>
<p>Si votre machine ne redemarre pas, essayez un reboot materiel via la console et au pire, bootez sur le system de secours pour modifier /boot/grub/menu.lst et remettre votre ancien noyau (parametre &#8216;default&#8217;).</p>
<p><strong>Ce patch est indispensable </strong>sinon tot ou tard votre systeme sera compromis.</p>
<p>Pour ceux qui souhaiterait installer leur propre kernel et le patcher, suivez le tuto de drax sur son (excellent) blog : <a href="http://sweon.net/2008/02/vmsplice-exploit-fix-and-patching-on-debian">vmsplice-exploit-fix-and-patching-on-debian</a> et pour les plus curieux, plus de détails techniques sur cette faille : <a href="http://www.isec.pl/vulnerabilities/isec-0026-vmsplice_to_kernel.txt">http://www.isec.pl/vulnerabilities/isec-0026-vmsplice_to_kernel.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/upgrade-securite-dedibox/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Getting SuExec and TRAC to play nice</title>
		<link>http://blog.revolunet.com/index.php/reseau/administration/getting-suexec-and-trac-to-play-nice</link>
		<comments>http://blog.revolunet.com/index.php/reseau/administration/getting-suexec-and-trac-to-play-nice#comments</comments>
		<pubDate>Tue, 12 Feb 2008 00:31:35 +0000</pubDate>
		<dc:creator>drax</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://sweon.net/2008/02/getting-suexec-and-trac-to-play-nice</guid>
		<description><![CDATA[
EnvironmentError: The environment options "TRAC_ENV" or "TRAC_ENV_PARENT_DIR"
or the mod_python options "TracEnv" or "TracEnvParentDir" are missing.
Yuck. What&#8217;s more, if you&#8217;re using SuExec (like I am) then your Apache directives are ignored.

Solution: Edit your trac.fcgi and prepend the following code.

# hack for SuExec
import os;
os.environ['TRAC_ENV_PARENT_DIR'] = '/var/lib/trac'

]]></description>
			<content:encoded><![CDATA[<pre>
EnvironmentError: The environment options "TRAC_ENV" or "TRAC_ENV_PARENT_DIR"
or the mod_python options "TracEnv" or "TracEnvParentDir" are missing.</pre>
<p>Yuck. What&#8217;s more, if you&#8217;re using SuExec (like I am) then your Apache directives are ignored.</p>
<p>
Solution: Edit your trac.fcgi and prepend the following code.</p>
<pre language="perl" line="1">
# hack for SuExec
import os;
os.environ['TRAC_ENV_PARENT_DIR'] = '/var/lib/trac'
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/reseau/administration/getting-suexec-and-trac-to-play-nice/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>vmsplice exploit fix and patching on Debian</title>
		<link>http://blog.revolunet.com/index.php/reseau/administration/vmsplice-exploit-fix-and-patching-on-debian</link>
		<comments>http://blog.revolunet.com/index.php/reseau/administration/vmsplice-exploit-fix-and-patching-on-debian#comments</comments>
		<pubDate>Mon, 11 Feb 2008 18:00:06 +0000</pubDate>
		<dc:creator>drax</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[exploitation]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[debian]]></category>

		<guid isPermaLink="false">http://sweon.net/2008/02/vmsplice-exploit-fix-and-patching-on-debian</guid>
		<description><![CDATA[Some vulnerabilities in the Linux kernel where publicly disclosed on the 8th of February 2008. These can be exploited by any user to gain elevated privileges. A &#8220;local root&#8221; exploit was published Sunday which allows an arbitrary user to escalate to root privileges.
Affected versions: >= 2.6.17
Fixed in version: 2.6.24.2

Fix
You can download the vmsplice patch locally [...]]]></description>
			<content:encoded><![CDATA[<p>Some vulnerabilities in the Linux kernel where publicly disclosed on the 8th of February 2008. These can be exploited by any user to gain elevated privileges. A &#8220;local root&#8221; exploit was published Sunday which allows an arbitrary user to escalate to root privileges.</p>
<p>Affected versions: >= 2.6.17<br />
Fixed in version: 2.6.24.2<br />
<span id="more-320"></span></p>
<h3>Fix</h3>
<p>You can download the <a href='/wp-content/uploads/2008/02/vmsplice.patch' title='vmsplice.patch'>vmsplice patch</a> locally or from the official LKML thread: <a href="http://lkml.org/lkml/2008/2/11/25">[PATCH] vmsplice exploit fix</a></p>
<h3>Patching on Debian Etch</h3>
<p><span class="pupdate" style="color: red"><strong>Update 12/02/08: </strong></span>Debian repositories have been updated and contain patched kernels. If you&#8217;re using a stock kernel, the following two commands should sort you out (providing you reboot afterwards).</p>
<pre line="1" lang="bash">
aptitude update
aptitude upgrade
</pre>
<h4>Install kernel sources</h4>
<pre line="1" lang="bash">
export KVER=`uname -r`
aptitude update
aptitude install linux-source-${KVER}
cd /usr/src
tar -xjf linux-source-${KVER}.tar.bz2
ln -s linux-source-${KVER} linux
cd linux
</pre>
<h4>Patch kernel sources</h4>
<pre line="1" lang="bash">
patch < vmsplice.patch -p1
</pre>
<h4>Compile kernel and install</h4>
<p>You'll want to copy your existing kernel configuration.</p>
<pre line="1" lang="bash">
cp /boot/config-${KVER} .config
make-kpkg clean
make-kpkg --initrd --append-to-version=-mykernelname kernel_image
cd ..
dpkg -i linux-image-${KVER}-mykernelname_${KVER}-mykernelname-10.00.Custom_i386.deb
reboot
</pre>
<h4>References</h4>
<ul>
<li><a href="http://www.isec.pl/vulnerabilities/isec-0026-vmsplice_to_kernel.txt">http://www.isec.pl/vulnerabilities/isec-0026-vmsplice_to_kernel.txt</a>
<li><a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=465246">http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=465246</a>
<li><a href="http://milw0rm.com/exploits/5092">http://milw0rm.com/exploits/5092</a>
<li><a href="http://milw0rm.com/exploits/5093">http://milw0rm.com/exploits/5093</a>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/reseau/administration/vmsplice-exploit-fix-and-patching-on-debian/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Encrypted filesystem on OS X, Linux and Windows</title>
		<link>http://blog.revolunet.com/index.php/reseau/administration/encrypted-filesystem-on-os-x-linux-and-windows</link>
		<comments>http://blog.revolunet.com/index.php/reseau/administration/encrypted-filesystem-on-os-x-linux-and-windows#comments</comments>
		<pubDate>Sat, 02 Feb 2008 18:08:56 +0000</pubDate>
		<dc:creator>drax</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[truecrypt]]></category>

		<guid isPermaLink="false">http://sweon.net/2008/02/encrypted-filesystem-on-os-x-linux-and-windows</guid>
		<description><![CDATA[


Finally we have a truly portable, open source, encrypted filesystem. I&#8217;ve tested a fair share of encrypted filesystem solutions. The most promising probably being encfs since it could be used with Fuse, but that only works on OS X and Linux at best.

TrueCrypt, probably the best solution available, was only working on Linux and Windows&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://sweon.net/wp-content/uploads/2008/02/truecrypt_windows.png' title='truecrypt_windows.png'><img src='http://blog.revolunet.com/wp-content/uploads/2008/02/truecrypt_windows.png' alt='truecrypt_windows.png' /></a><br />
<a href='http://sweon.net/wp-content/uploads/2008/02/truecrypt_osx.png' title='truecrypt_osx.png'><img rel=”lightbox” src='http://blog.revolunet.com/wp-content/uploads/2008/02/truecrypt_osx.png' alt='truecrypt_osx.png' /></a><br />
<a href='http://sweon.net/wp-content/uploads/2008/02/truecrypt_linux.png' title='truecrypt_linux.png'><img src='http://blog.revolunet.com/wp-content/uploads/2008/02/truecrypt_linux.png' alt='truecrypt_linux.png' /></a><br />
Finally we have a truly portable, open source, encrypted filesystem. I&#8217;ve tested a fair share of encrypted filesystem solutions. The most promising probably being encfs since it could be used with Fuse, but that only works on OS X and Linux at best.</p>
<p>
TrueCrypt, probably the best solution available, was only working on Linux and Windows&#8230; up to now.<br />
<span id="more-319"></span><br />
Some dude got impatient for the OS X port, managed to make a deal with a developper to code it for 1500$, raised those 1500$ and BAM! Bob&#8217;s you&#8217;re uncle.</p>
<p>
The software is labelled alpha, described as beta, and used in production&#8230; w00t. Jokes aside, it&#8217;s been released for a few weeks now and no serious data-destroying bug stories have arose. Nevertheless, you might want to backup to another more trusted encrypted disk somewhere, every now and then.</p>
<p>
Bare in mind the TrueCrypt team annouce their 5.0 release for the 4th of Febuary 2008 (that&#8217;s in 2 days) and claim OS X support. Watch this space&#8230;</p>
<p>
Still interested? Download the software here:</p>
<ul>
<li><a href="http://www.osxcrypt.org/download/">TrueCrypt for OS X</a></li>
<li><a href="http://www.truecrypt.org/downloads.php">TrueCrypt for Linux and Windows</a></li>
</ul>
<p><span style="color:red">OS X notes:</span></p>
<ul>
<li>Your encrypted filesystem image should have a .img extension.</li>
<li>When mounting a hidden volume, you&#8217;ll be asked the outer volume password, then the hidden volume password.</li>
<li>Unmounting in finder <b>does not</b> dismount the image. It&#8217;s a known bug. Use ocutil -detach.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/reseau/administration/encrypted-filesystem-on-os-x-linux-and-windows/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Test de l&#8217;eee PC ASUS</title>
		<link>http://blog.revolunet.com/index.php/general/test-de-leee-pc-asus</link>
		<comments>http://blog.revolunet.com/index.php/general/test-de-leee-pc-asus#comments</comments>
		<pubDate>Thu, 31 Jan 2008 20:38:14 +0000</pubDate>
		<dc:creator>Juju</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[actu informatique]]></category>
		<category><![CDATA[geek style]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/index.php/general/test-de-leee-pc-asus</guid>
		<description><![CDATA[

 
Ca y est j&#8217;ai craqué, en faisant mes petites courses rue Montgallet, je suis tombé sur un magnifique eee PC noir mat et je n&#8217;ai pu resister a la folle envie de tester ce petit (mais costaud) concentré de technologies.       
Au premier abord l&#8217;eee pc est vraiment petit, normal me direz vous avec écran 7 pouces, [...]]]></description>
			<content:encoded><![CDATA[<table>
<tr>
<td><img id="image256" title="ASUS EEE PC" alt="ASUS EEE PC" src="/wp-content/uploads/2008/eeepc.jpg" /> </td>
<td style="font-size: 14px">Ca y est j&#8217;ai craqué, en faisant mes petites courses rue Montgallet, je suis tombé sur un magnifique eee PC noir mat et je n&#8217;ai pu resister a la folle envie de tester ce petit (mais costaud) concentré de technologies.       </p>
<p>Au premier abord l&#8217;eee pc est vraiment petit, normal me direz vous avec écran 7 pouces, 4Go de SSD, 900 grammes et 319€TTC. La webcam intégrée (et oui!) est de piètre qualité mais ca suffit pour de la visioconférence et des petites photos.</td>
</tr>
</table>
<p>Au second abord, il est petit aussi, et c&#8217;est pour cela qu&#8217;on l&#8217;achete <img src='http://blog.revolunet.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  La taille de l&#8217;écran, la resolution et les performances, ce n&#8217;est pas une machine pour coder ni pour travailler mais un petit pc de depannage pour surfer, se connecter à des shells, lire des videos et du son, communiquer&#8230; C&#8217;est deja pas mal.</p>
<p> Le clavier, très petit, voir trop petit, demande un temps d&#8217;adaptation et le touchpad est très enervant car trop petit aussi. Il va falloir mettre une souris externe&#8230; peut etre<a href="http://www.logitech.com/index.cfm/notebook_products/mice/devices/3271&#038;cl=fr,fr" target="_blank"> celle ci </a>!! En tous cas la batterie annonce <a href="http://www.eee-pc.fr/2008/01/28/test-autonomie-eeepc/" target="_blank">2h30 d&#8217;autonomie a plein régime</a> ce qui est déjà respectable vu la taille de la batterie. </p>
<p>La bête demarre en 30 secondes sur une distribution Xandros de ASUS, qui ressemble à première vue <a href="http://www.ordissimo.com/" target="_blank">l&#8217;ordissimo</a> de ma grand-mere; parfait pour les débutants mais si vous êtes geek, vous avez envie de configurer un vrai bureau avec vos petits widgets et tout ce qu&#8217;il faut.</p>
<p>J&#8217;ai donc d&#8217;abord tenté d&#8217;installer eeeXubuntu en suivant le tuto sur : <a href="http://wiki.eeeuser.com/ubuntu:eeexubuntu:home">http://wiki.eeeuser.com/ubuntu:eeexubuntu:home</a> - malheureusement &#8211; il semblerait que la version de mes cartes WiFi et Internet ne soient pas intégrés dans cette version (7.10 r3) donc par manque de temps, de posts sur ce sujet, et de motiver a m&#8217;acharner sur ce minuscule clavier dépourvu de réseau, je suis finalement <a href="http://www.eee-pc.fr/2008/01/29/reinstaller-xandros-eeepc" target="_blank">repassé sur Xandros</a>, qui apres un peu de configuration ressemble beaucoup a une Ubuntu d&#8217;autant plus que c&#8217;est aussi basé sur Debian&#8230; Et la bien sur tout fonctionne bien dès le début&#8230;</p>
<p>Pour installer des programmes supplémentaire, ajoutez des dépots dans Synaptic depuis cette liste : <a href="http://wiki.eeeuser.com/addingxandrosrepos?s=repositories">http://wiki.eeeuser.com/addingxandrosrepos?s=repositories</a></p>
<p>L&#8217;EEE est un super portable d&#8217;appoint, sous linux, très accessible aux débutants, et disponible a moins de 300€ . Vu le succès apparemment rencontré par le produit (déjà en rupture de stocks dans plusieurs magasins), cela va permettre en tous cas de démocratiser Linux un peu plus et sensibiliser le public au logiciel libre.</p>
<p>NB : Vous pouvez acheter des cartes mémoires SDHC 4Go a moins de 20€ sur internet pour augmenter votre capacité de stockage.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/test-de-leee-pc-asus/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Hosting multiple SSL vhosts on a single IP/Port/Certificate with Apache2</title>
		<link>http://blog.revolunet.com/index.php/reseau/administration/hosting-multiple-ssl-vhosts-on-a-single-ipportcertificate-with-apache2</link>
		<comments>http://blog.revolunet.com/index.php/reseau/administration/hosting-multiple-ssl-vhosts-on-a-single-ipportcertificate-with-apache2#comments</comments>
		<pubDate>Thu, 24 Jan 2008 13:07:54 +0000</pubDate>
		<dc:creator>drax</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[vhosts]]></category>

		<guid isPermaLink="false">http://sweon.net/2008/01/hosting-multiple-ssl-vhosts-on-a-single-ipportcertificate-with-apache2</guid>
		<description><![CDATA[But that&#8217;s impossible!!
HTTPS is just HTTP encapsulated inside an SSL tunnel. Apache&#8217;s virtual hosts are a clever &#8220;hack&#8221; whereby the Host header in the HTTP packet is verified. This alllows a single apache instance on a single IP/Port combination to serve a (not so) infinite number of differentes sites (aka vhosts).
Problem: The SSL tunnel is [...]]]></description>
			<content:encoded><![CDATA[<h3>But that&#8217;s impossible!!</h3>
<p>HTTPS is just HTTP encapsulated inside an SSL tunnel. Apache&#8217;s virtual hosts are a clever &#8220;hack&#8221; whereby the Host header in the HTTP packet is verified. This alllows a single apache instance on a single IP/Port combination to serve a (not so) infinite number of differentes sites (aka vhosts).</p>
<p>Problem: The SSL tunnel is created <span style="font-weight: bold" class="Apple-style-span">before</span> the first HTTP packet gets sent. Apache needs an SSL certificate but doesn&#8217;t have a Host header to match, hence cannot choose a virtual host.</p>
<h3>Solution</h3>
<p>This trick essentially does the matching of the Host header <span class="Apple-style-span" style="font-weight: bold">after</span> the SSL connection has been established. How? Via some mod_rewrite magic!<br />
<h3>Caveats</h3>
<p>Although I said so, it&#8217;s not really that magical. There are a few things this trick does not solve.
<ul>
<li>The SSL certificate used will be common to all SSL vhosts.</li>
<li>Certain Apache directives may be common to all SSL vhosts (example: SuExecUserGroup). Basically anything you can&#8217;t override in a .htaccess file will be shared amongst vhosts.</li>
</ul>
<p><span id="more-316"></span></p>
<h3>The trick</h3>
<p>The process is only 2 steps and involves modifying your Apache configuration. I assume you have a working SSL vhost configured.</p>
<ol>
<li>Create virtual hosts &#8220;map file&#8221;.</li>
<li>Modify existing SSL vhost.</li>
</ol>
<h4>1. The virtual hosts map file</h4>
<p>Create a new file in your Apache server root. Example:<span class="path">/etc/apache2/ssl.map</span><br/><br />
Write a list of virtual hosts and their respective <tt>DocumentRoot</tt>. Example:</p>
<pre>
foo.example.com        /var/www/foo.example.com/
bar.example.com        /var/www/bar.example.com/
# you can even put comments!
# Alias to bar
boar.example.com        /var/www/bar.example.com/
</pre>
<p/>
<h4>2. Edit your SSL vhost</h4>
<p>Open your Apache config, inside the &lt;VirtualHost&gt; section of your SSL vhost, include the following code or include this file: <a href='http://blog.revolunet.com/wp-content/uploads/2008/01/mass_ssl_vhosts.conf' title='Mass SSL vhosts'>Mass SSL vhosts Apache config</a>.</p>
<p>
<span class="Apple-style-span" style="font-weight: bold;color:red;">Important:</span> Make sure to edit line 8 to include the correct path to your <tt>ssl.map</tt> file.</p>
<pre line="1" lang="perl">### Mass SSL Vhosts ###
RewriteEngine on

#   define two maps: one for fixing the URL and one which defines
#   the available virtual hosts with their corresponding
#   DocumentRoot.
RewriteMap    lowercase    int:tolower
RewriteMap    vhost        txt:/etc/apache2/ssl.map

#   1. make sure we don't map for common locations
RewriteCond   %{REQUEST_URI}  !^/cgi-bin/.*
RewriteCond   %{REQUEST_URI}  !^/icons/.*

#   2. make sure we have a Host header
RewriteCond   %{HTTP_HOST}  !^$

#   3. lowercase the hostname
RewriteCond   ${lowercase:%{HTTP_HOST}|NONE}  ^(.+)$
#
#   4. lookup this hostname in vhost.map and
#      remember it only when it is a path
#      (and not "NONE" from above)
RewriteCond   ${vhost:%1}  ^(/.*)$

#   5. finally we can map the URL to its docroot location
#      and remember the virtual host for logging puposes
RewriteRule   ^/(.*)$   %1/$1  [E=VHOST:${lowercase:%{HTTP_HOST}}]</pre>
<p>Restart Apache and you&#8217;re done. You should be able to browse (in https) the vhosts you added to your <tt>ssl.map</tt> file.<br/><br />
<b>Grandma says: </b>You don&#8217;t need to reload Apache when you edit your map file. Just create the document root folder on the filesystem, add a new entry to your map and you&#8217;re good to go.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/reseau/administration/hosting-multiple-ssl-vhosts-on-a-single-ipportcertificate-with-apache2/feed</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>migration mod_python</title>
		<link>http://blog.revolunet.com/index.php/general/migration-mod_python</link>
		<comments>http://blog.revolunet.com/index.php/general/migration-mod_python#comments</comments>
		<pubDate>Sat, 29 Apr 2006 14:00:08 +0000</pubDate>
		<dc:creator>Juju</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[admin]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=166</guid>
		<description><![CDATA[mod_python est un module pour le serveur Apache qui permet d&#8217;utiliser directement du Python pour cr&#233;er ses applis web. Cela apporte de nombreux avantages : la code est portable (relativement), le propotypage rapide, et on peut avoir acc&#232;s &#224;  tout biblioth&#232;que Python. Les inconvenients sont la s&#233;curit&#233; : il faut veiller &#224;  bien [...]]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://www.modpython.org">mod_python</a> est un module pour le serveur <a target="_blank" href="http://www.apache.org">Apache</a> qui permet d&#8217;utiliser directement du Python pour cr&eacute;er ses applis web. Cela apporte de nombreux avantages : la code est portable (relativement), le propotypage rapide, et on peut avoir acc&egrave;s &agrave;  tout biblioth&egrave;que Python. Les inconvenients sont la s&eacute;curit&eacute; : il faut veiller &agrave;  bien encadrer son application. </p>
<p>J&#8217;ai d&eacute;cid&eacute; de migrer une de mes applis de Python/IIS vers mod_python/Apache2. C&#8217;est une appli encore assez simple, toujours en beta mais qui utilise toutes les fonctionnalit&eacute;s d&#8217;un serveur web : Environnement, Session, Cookies&#8230; De plus, je voulais n&#8217;utiliser que la librairie standard de mod_python; pas de modules compl&eacute;mentaires ni de frameworks web. A priori, tout cela est g&eacute;r&eacute; par mod_python (&agrave;  partir de la v.3.1.3) donc : c&#8217;est parti !</p>
<p>La doc de <a target="_blank" href="http://www.modpython.org">mod_python</a> etant assez limit&eacute;e, je vais faire un petit r&eacute;sum&eacute; de ce que j&#8217;ai trouv&eacute;&#8230;</p>
<p>D&eacute;j&agrave; , il y a plusieurs facons d&#8217;utiliser mod_python : le mode standard, le mode Publisher, le mode PSP, ou encore le mode CGI.</p>
<p>ces 4 possibilit&eacute;s ont un impact au niveau des performances : cf <a target="_blank" href="http://www.modpython.org/live/current/doc-html/intr-performance.html">comparatif perfs modpython</a>. Et la facon de coder ne sera pas la m&ecirc;me.</p>
<p>Le mode PSP permet de faire des pages .psp du style de pages PHP, avec le HTML et le code Python mix&eacute;s. Pour des raisons de s&eacute;paration du code et de la pr&eacute;sentation, ce n&#8217;est pas l&#8217;id&eacute;al.</p>
<p>Le mode Publisher permet lui de faire quelque chose de plus pythonesque; on part d&#8217;un module python ou des fonctions r&eacute;pondront aux appels d&#8217;Apache, et on utilisera si besoin un syst&egrave;me de templates HTML (classe PSP). Ce mode facilite aussi la vie du programmeur en automatisant certaines t&acirc;ches (codes de retours Apache&#8230;)</p>
<p>J&#8217;ai opt&eacute; pour la solution publisher car c&#8217;est la plus &#8220;Python Style&#8221;, la plus puissante en termes d&#8217;&eacute;volutivit&eacute;, et elle est assez performante pour ce dont j&#8217;ai besoin.</p>
<p>D&eacute;j&agrave; , config dans Apache (je ne suis pas encore un pro de Apache) :</p>
<div class="codesnip-container" ><VirtualHost *><br />
ServerName dev.monappli.fr<br />
ServerAdmin contact@revolunet.com<br />
DocumentRoot /var/www/monappli<br />
<Directory /><br />
Options FollowSymLinks<br />
AllowOverride All<br />
Allow from all<br />
AddHandler mod_python .py<br />
PythonHandler mod_python.publisher # J&#8217;utilise publisher comme handler<br />
PythonDebug On<br />
</Directory><br />
</VirtualHost></div>
<p>Exemple de .htaccess : on peut d&eacute;finir des variables auxquelles mod_python aura acc&egrave;s :</p>
<div class="codesnip-container" >AddDefaultCharset cd1252<br />
DirectoryIndex main.py<br />
ErrorDocument 500 error.py<br />
ErrorDocument 404 error.py<br />
ExpiresDefault A1</p>
<p># Options Python<br />
PythonAutoReload On<br />
# ici on ajoute un dossier au sys.path pour nos libs persos<br />
PythonPath &#8220;['/var/www/monappli/lib/']+sys.path&#8221;<br />
PythonOption SMTP smtp.free.fr<br />
PythonOption DB_HOST 127.0.0.1<br />
PythonOption DB_NAME monappli<br />
PythonOption DB_USER monappli<br />
PythonOption DB_PASS monappli<br />
PythonOption ROOT_PATH /var/www/monappli/<br />
PythonOption LANG fr</p></div>
<p>Exemples de page en Python :<br />
Chaque fonction appell&eacute;e par un navigateur se voit passer un argument &#8216;request&#8217; (ici appell&eacute; req) qui permet d&#8217;acc&eacute;der aux classes Request, Response, Session, Cookies&#8230;</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1"># main.py :</span></p>
<p><span class="co1"># import d&#8217;un module</span><br />
<span class="kw1">import</span> <span class="kw3">time</span><br />
<span class="co1"># import d&#8217;un module dans notre lib (d&amp;eacute;finie dans le .htaccess)</span><br />
<span class="kw1">import</span> malibrairie</p>
<p><span class="co1"># fonction appell&amp;eacute;e quand appel direct &amp;agrave;&nbsp; monappli.fr (page par defaut)</span><br />
<span class="kw1">def</span> index<span class="br0">&#40;</span>req<span class="br0">&#41;</span>:<br />
req.<span class="me1">content_type</span> = <span class="st0">&#8220;text/html; charset=windows-1252&#8243;</span><br />
<span class="kw1">return</span> <span class="st0">&#8220;Bienvenue sur monappli.fr !&#8221;</span></p>
<p><span class="co1"># fonction appell&amp;eacute;e quand appel &amp;agrave;&nbsp; monappli.fr/page1</span><br />
<span class="kw1">def</span> page1<span class="br0">&#40;</span>req<span class="br0">&#41;</span>:<br />
req.<span class="me1">content_type</span> = <span class="st0">&#8220;text/html; charset=windows-1252&#8243;</span><br />
<span class="kw1">return</span> <span class="st0">&#8220;Bienvenue sur la page 1 !&#8221;</span></p>
<p><span class="co1">#fonction priv&amp;eacute;e, qu&#8217;on ne peut pas appeller depuis apache</span><br />
<span class="kw1">def</span> _private<span class="br0">&#40;</span>req<span class="br0">&#41;</span>:<br />
<span class="kw1">return</span> <span class="br0">&#40;</span><span class="nu0">2</span>*<span class="nu0">2</span><span class="br0">&#41;</span></div>
</div>
<p><strong>Je post d&#8217;autres exemples tr&egrave;s bient&ocirc;t, stay tuned <img src='http://blog.revolunet.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </strong></p>
<p><strong>A venir : </strong>Gestion session, cookie&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/migration-mod_python/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Mot de passe root accessible sous Ubuntu</title>
		<link>http://blog.revolunet.com/index.php/general/mot-de-passe-root-accessible-sous-ubuntu</link>
		<comments>http://blog.revolunet.com/index.php/general/mot-de-passe-root-accessible-sous-ubuntu#comments</comments>
		<pubDate>Mon, 13 Mar 2006 10:04:29 +0000</pubDate>
		<dc:creator>Juju</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[actu informatique]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/index.php/general/mot-de-passe-root-accessible-sous-ubuntu</guid>
		<description><![CDATA[Il semblerait que les developpeurs d&#8217;Ubuntu 5.10 aient commis une (grosse) boulette en ne supprimant pas le log de l&#8217;installation. Celui-ci, accessible en lecture par n&#8217;importe qui sur la machine, contient en clair le mot de passe root!
Le probleme est apparemment aussi pr&#233;sent sur Kubuntu!
Alors effacer ce fichier de log ou upgradez votre version, car [...]]]></description>
			<content:encoded><![CDATA[<p>Il semblerait que les developpeurs d&#8217;Ubuntu 5.10 aient commis une (grosse) boulette en ne supprimant pas le log de l&#8217;installation. Celui-ci, accessible en lecture par n&#8217;importe qui sur la machine, contient en clair le mot de passe root!</p>
<p>Le probleme est apparemment aussi pr&eacute;sent sur Kubuntu!</p>
<p>Alors effacer ce fichier de log ou upgradez votre version, car le bug a &eacute;t&eacute; corrig&eacute; dans les mises &agrave;  jour.</p>
<p><a target="_blank" href="https://launchpad.net/distros/ubuntu/+source/shadow/+bug/34606">https://launchpad.net/distros/ubuntu/+source/shadow/+bug/34606</a></p>
<p>script pour tester la vul&eacute;rabilit&eacute; de votre syst&egrave;me : <a target="_blank" href="http://www.ubuntuforums.org/showpost.php?p=818304&#038;postcount=74">http://www.ubuntuforums.org/showpost.php?p=818304&#038;postcount=74</a></p>
<p>vuln&eacute;rabilit&eacute; d&eacute;vcouverte par un noob <img src='http://blog.revolunet.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/mot-de-passe-root-accessible-sous-ubuntu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comprendre le fonctionnement du son sous Debian</title>
		<link>http://blog.revolunet.com/index.php/general/comprendre-le-fonctionnement-du-son-sous-debian</link>
		<comments>http://blog.revolunet.com/index.php/general/comprendre-le-fonctionnement-du-son-sous-debian#comments</comments>
		<pubDate>Mon, 30 Jan 2006 17:18:51 +0000</pubDate>
		<dc:creator>Juju</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[admin]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/index.php/general/comprendre-le-fonctionnement-du-son-sous-debian</guid>
		<description><![CDATA[Voici un petit article, clair et concis, qui r&#233;sume simplement le fonctionnement du son sous Linux et plus particuli&#232;rement sous Ubuntu (Debian).
On y apprend comment installer et configurer le son si l&#8217;installation ne l&#8217;a pas pris en compte&#8230;
Bien utile, surtout pour les configs exotiques.
http://ploum.frimouvy.org/?2005/11/27/81-le-son-sous-ubuntu-breezy
]]></description>
			<content:encoded><![CDATA[<p>Voici un petit article, clair et concis, qui r&eacute;sume simplement le fonctionnement du son sous Linux et plus particuli&egrave;rement sous Ubuntu (Debian).</p>
<p>On y apprend comment installer et configurer le son si l&#8217;installation ne l&#8217;a pas pris en compte&#8230;</p>
<p>Bien utile, surtout pour les configs exotiques.</p>
<p><a target="_blank" href="http://ploum.frimouvy.org/?2005/11/27/81-le-son-sous-ubuntu-breezy">http://ploum.frimouvy.org/?2005/11/27/81-le-son-sous-ubuntu-breezy</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/comprendre-le-fonctionnement-du-son-sous-debian/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
