ACCUEIL >>  Technologies et Territoires >>  Laboratoire du libre >>  Linux

 

Faire une borne web avec une Fedora Core 4

jeudi 27 avril 2006 , par Daniel Lacroix

 

Nous souhaitons faire une borne Web à partir d’une Fedora Core 4. Cette installation doit être robuste et limiter les usagers un l’accès Internet seulement. Dans notre cas, limiter même les possibilités de navigation.

Pour cela, nous commençons par faire une installation normale d’une Fedora Core 4.

Ensuite, il faut "brider" la machine. Pour cela, il faut commencer par enlever tout ce qui ne sert à rien sous la Fedora. Le choix de ce que l’on garde ou pas dépend du matériel et de ce que l’on veut vraiment faire avec la borne.

Compte utilisateur

Il est après nécessaire de créer un compte utilisateur sur lequel nous ferons tourner le navigateur web. En effet, on ne veut pas que les applications tournent sur le compte root. Si un compte existe déjà, il n’y a rien à faire. Sinon, nous allons créer le compte test :


adduser test

Grub

Modifier le fichier /etc/grub.conf pour supprimer le boot graphique. Ce qui revient a enlever les rhgb. Exemple de fichier grub :


default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.16-1.2096_FC4)
       root (hd0,0)
       kernel /boot/vmlinuz-2.6.16-1.2096_FC4 ro root=LABEL=/ rhgb quiet
       initrd /boot/initrd-2.6.16-1.2096_FC4.img
title Fedora Core (2.6.11-1.1369_FC4)
       root (hd0,0)
       kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ rhgb quiet
       initrd /boot/initrd-2.6.11-1.1369_FC4.img

puis reconstruction du secteur de boot avec la commande :


grub-install /dev/hda

inittab On veut que la borne démarre en mode graphique directement sur le compte test. De plus, comme un plantage et toujours possible, on va s’assurer que si le serveur X plante ou si le navigateur web se termine, il sera redémmarré automatiquement.

Pour cela, le moyen le plus simple et de modifier inittab. Nous allons donc changer le runlevel 5 par notre composition.

On commence par vérifier que linux démarre bien au runlevel 5 :


id:5:initdefault:

puis on va commenter la ligne :


# Run xdm in runlevel 5
#x:5:once:/etc/X11/prefdm -nodaemon

et rajouter le ligne suivante :


x:5:respawn:su test - -c "PATH=/usr/bin:/bin:/usr/X11R6/bin; /usr/X11R6/bin/startx"

PAM

Il se trouve que sous la Fedora, le serveur X utilise PAM pour vérifier les autorisations nécessaires afin de le démarrer. Si on redémmarre la machine après la modification de inittab, le serveur X refusera de démarrer.

Pour autoriser le lancement du serveur X sans avoir à se connecter sur la console, il faut donc modifier le fichier /etc/pam.d/xserver. Voici le contenu possible :


#%PAM-1.0
auth       required     pam_env.so
auth       required     pam_nologin.so
auth       required     pam_permit.so
account    required     pam_stack.so service=system-auth
password   required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth
session    optional     pam_console.so

dans le cas présent, xserver est juste la recopier du fichier gdm-autologin.

xinitrc

Maintenant, si on redémarrer la machine, la session de l’utilisateur test sera ouverte automatiquement et ne pourra jamais être fermée car si on la ferme, elle doit se réouvrir automatiquement.

Dans notre situation, on ne souhaite pas ouvrir automatiquement la session de l’utilisateur mais juste un navigateur web. Nous allons créer un fichier .xinitrc dans le home de l’utilisateur soit /home/test/.xinitrc.

Le fichier en question pourra être comme suit :


export PATH=/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin
/usr/X11R6/bin/xset s off
/usr/X11R6/bin/xset -dpms
/usr/libexec/vino-server &
/usr/bin/epiphany

Cela mérite quelques explications. "xset s off" permet de désactiver le screensaver. "xset -dpms" permet de désactiver l’économie d’énergie et donc la coupure automatique de l’écran (ce qui n’est pas idéale sur une borne publique). "vino-server" permet de démarrer vino afin de pouvoir ce connecter en VNC à distance sur l’écran de la machine. Pour que cela fonctionne bien, il faut d’abord configurer vino (en ouvrant une session utilisateur normale par exemple).



Répondre à cet article



Recherche par mots clés