« FullCircle Magazine », le mag des utilisateurs d’Ubuntu

Pour ceux qui ne connaissent pas, il existe un petit magazine gratuit, appelé « FullCircle Magazine », dédié à notre distribution Ubuntu. Le numéro 14 vient de sortir.

Ubuntu fullcircle magazine

Les différents numéros sortent régulièrement en anglais puis sont traduits en différentes langues dont le français dans les semaines suivant la sortie.

Je vous invite à le lire, les articles sont pas mal du tout.

Pour ceux qui ont du retard, voilà un petit script permettant de récupérer les numéros 5 à 14 en anglais.

mkdir fullcircle ; cd fullcircle ;  for i in 5 6 7 8 9 10 11 12 13 14  ; do  wget http://dl.fullcirclemagazine.org/issue${i}_en.pdf ; done

Bonne lecture.

Crypter sa partition home avec Ubuntu Gutsy

Voilà un petit tutoriel en complément de celui du numéro de Gnu Linux Magazine France de ce mois-ci pour savoir comment crypter votre partition home et votre swap.

Ce tuto n’a pas vocation a créer un bunker sur votre PC, mais juste de rendre vos données inaccessibles en cas de vol.

entree_interdite_yves_gu_01.png

ATTENTION: Ce tuto est risqué pour vos données. En cas d’erreur dans le choix de la partition ou d’oubli du mot de passe, vous perdrez vos données. cela dit, il faut bien s’amuser non ? 🙂

La première étape est d’installer les packages nécessaires.

sudo apt-get install cryptsetup
sudo apt-get install libpam-mount

Ensuite, par simplicité, créer un mot de passe pour le compte root afin de pouvoir vous connecter lorsque votre partition home sera indisponible.

 sudo su - passwd

Quittez X puis tapez ALT + CTRL + F1 pour aller sur une console. logguez vous en root, nous allons nous occuper du swap.

 swapon -s

relevez le nom de votre partition de swap (ici /dev/xxxx)

 swapoff /dev/xxxx
cryptsetup -c aes -d /dev/random -s 256 create c_swap /dev/xxxx
mkswap /dev/mapper/c_swap
swapon /dev/mapper/c_swap

Dans le fichier /etc/cryptab

ajoutez:

 c_swap         /dev/sda3 /dev/urandom size=256,swap

Dans le fichier /etc/fstab remplacez la ligne montant votre ancien swap par celle-ci:

 /dev/mapper/c_swap none            swap    sw              0       0

Voilà, votre swap est crypté avec une clef périmant à chaque redémarrage. Attention, ce système vous empêche d’utiliser l’hibernation (la clef étant perdue au redémarrage, le swap est formaté à chaque boot). Cependant une petite recherche sur internet vous permettra de trouver des solutions pour contourner ce problème.

Pour ce qui est de la partition home, le problème est le formatage de la partition. Vous êtes obligés de copier le contenu de /home vers un autre support (partion, DVD, disque usb…) puis de tout restaurer à la fin de la manip. Évidemment, le /home doit être sur une partition indépendante. Toujours en dehors de X,

Notez le nom de votre partition home

 mount

Ensuite démontez /home (ici /dev/sda4)

 umount /home
cryptsetup luksFormat /dev/sda4

Choisissez un mot de passe (compatible avec pam)

cryptsetup luksOpen /dev/sda4 c_home
mkfs.ext3 /dev/mapper/c_home

vi /etc/fstab, remplacez la ligne concernant votre /home par celle-ci:

 /dev/mapper/c_home /home           ext3    defaults,noauto        0       0

Maintenant, nous allons utiliser un module pam, pam_mount, qui va automatiquement décrypter votre partition home au moment du login (ca prend ~ 2sec)

vi /etc/security/pam_mount.conf Ajoutez la ligne suivante:

 volume * crypt - /dev/sda4 /home - - -

Ajoutez la ligne suivante @include common-pammount à tous les modules pam que vous êtes susceptibles d’utiliser pour vous connecter. Gdm et login doivent suffire pour une utilisation normale.

 vi /etc/pam.d/gdm
 ajoutez
@include common-pammount
vi /etc/pam.d/login
ajoutez
@include common-pammount

Rebootez votre PC. Lorsque vous taperez votre mot de passe, la partition sera décryptée à la volée. Dès que vous vous déconnectez, celle-ci est verrouillée. Certes, ce système est moins sur qu’une clef stockée par exemple sur un support externe, mais elle a le mérite d’être peu contraignante. Il suffit juste d’utiliser un mot de passe fort.

Si j’ai oublié des choses, n’hésitez pas à me le signaler.

GNU Linux Magazine N°100 et les articles du CD

Avec la super initiative de GLMF, vous voilà avec quelques 550 articles sur un CDROM. Voilà une petite astuce pour les exploiter au mieux 😉

lmag100.jpg

A l’ouverture du CD, j’ai été un peu déçu de ne pas trouver un sommaire pour exploiter cette mine d’informations. Qu’à cela ne tienne, un petit coup de PERL et nous voilà avec un apercu HTML de la première page des articles. Le script calcule le nombre de pages de l’article grâce à l’information contenue dans le nom du fichier et le compare avec le nombre de pages du PDF afin de déduire s’il s’agit d’un fichier avec un copyright normal ( 1 page au début ) ou avec une licence Creative commons (2 pages au début et 2 à la fin). Le script génère alors un aperçu PNG de la 1° page de l’article qu’il insère dans une page HTML.

voilà les actions à faire pour mettre en oeuvre le script. Les pdf sont copiés sur le disque dur pour plus de confort. (450Mo)

mkdir -p GLMF/PDF
cd GLMF
wget https://www.equinoxefr.org/public/build_index.pl
sudo apt-get install libpdf-api2-perl imagemagick
cd  PDF
find /media/cdrom/ -iname "*.pdf" -exec cp {} ./ \;
cd ..
./build_index.pl
reset

On aurait pu aussi supprimer les pages « gênantes », ce que j’aurais fait sans scrupule s’il s’était agit d’une pub et non d’une licence (Cf GLMF N°97 P82) . On aurait juste aimé que ces pages soient en fin de fichier et non au début afin de ne pas perturber les aperçus de fichiers.

Capture-Index_Linux-Magazine_-_Mozilla_Firefox.png

Voilà le script, fait à la « vas vite » mais qui marche sauf pour quelques PDF qui semblent altérés (un petit bug dans ghostscript entraine un affichage tout pourri dans le terminal d’où est lancé le script. heureusement un coup de reset remet tout en ordre).

#! /usr/bin/perl

use strict;
use PDF::API2;

my $PDF_PATH="./PDF";

mkdir("THUMBNAILS");
open(FD,">index.html");
my $nb=0;
opendir(DIR, "$PDF_PATH") || die "can't opendir ./PDF: $!";
my @files = grep { /\.pdf$/ } readdir(DIR);
closedir DIR;

print FD "<BODY><TITLE>Index Linux-Magazine</TITLE>\n";
print FD "<table border=1>\n";
foreach my $filename (sort(@files))
{
    if ($filename !~ /GLMF_083_014_021/i)
    {
	my $pdf = PDF::API2->open("$PDF_PATH/$filename");
	my $pdf_pages = $pdf->pages;
	$pdf->end();
	my ($mag_num,$page_start,$page_end) = ($filename =~ m/^GLMF_(\d+)_(\d+)_(\d+).pdf$/i);
	my $art_pages = $page_end - $page_start;
	my $copyright_pages = $pdf_pages - $art_pages;
	if (!($nb % 4))
	{
	    if ($nb)
	    {
		print FD "</TR><TR>";
	    }
	    else
	    {
		print FD "<TR>";
	    }

	}
	print "Convert $filename $pdf_pages pages in pdf, $art_pages in article diff:$copyright_pages\n";
	print "Info: Mag n° $mag_num, article page $page_start to $page_end\n";
	my ($base_name) = ( $filename =~ m/(.*?)\.pdf$/i );
	if (! -f "./THUMBNAILS/COVER_${base_name}.png")
	{
	    if ($copyright_pages >= 5)
	    {
	       `convert -scale 400x300 "${PDF_PATH}/${filename}\[2\]" ./THUMBNAILS/COVER_${base_name}.png`;
	    }
	    else
	    {
	       `convert -scale 400x300 "${PDF_PATH}/${filename}\[1\]" ./THUMBNAILS/COVER_${base_name}.png`;
	    }
	}
	print FD "<TD align=center>GLMF Numero $mag_num<br>$pdf_pages pages<br><a href=\"$PDF_PATH/$filename\"> <IMG src=\"./THUMBNAILS/COVER_${base_name}.png\"></a></TD>\n";
	$nb++;
    }
    }
print FD "</table>\n";
print FD "</BODY>\n";
close(FD);