LINUX en famille

Mon mari Philippe A. donne des cours pours l’installation de Linux.

Un des participants aux cours lui a envoyé un mail, car il a publié un article en leurs 2 noms [cliquer ICI]

Je cite:

publicRéinitialisation de l’environnement de travail du profil utilisateur public ECN pour un système Linux

Soumis par david.vanhoutte (Ville de Roubaix) le ven, 14/02/2014 – 15:56
La conduite d’ateliers auprès de stagiaires comme l’accompagnement des habitants aux usages numériques dans les ECN, nécessite un environnement de travail de bureau standardisé qui soit le plus léger en maintenance.

Définition du besoin

L’équipement des Espaces citoyens numériques se limitant la plupart du temps à un ensemble de trois au quatre ordinateurs sans serveur, la fonction d’amorçage des postes par le réseau permettant le chargement de configurations identiques n’a pas fait l’objet d’ingénierie. Ces ordinateurs sont équipés d’un système Linux issu d’une distribution dérivée de Ubuntu.

Il s’agit donc de d’automatiser la réinitialisation de l’environnement de travail du profil utilisateur public, à partir d’un environnement modele, sur un ordinateur équipé d’un système Linux directement raccordé à l’Internet sans réseau local, en utilisant un service graphique d’identification (X Window System – X11).

Conditions et prérequis

Le développement de la solution proposée a été conçu et mis en œuvre sur une distribution Linux Mint 16 Petra MATE Edition.

Il convient de créer un groupe auquel seront rattachés les utilisateurs public et modele afin d’autoriser public à lire tous les dossiers et fichiers contenus dans /home/modele. Ce groupe sera nommé ecn.

L’utilisateur public s’identifie avec le serveur graphique X. Au démarrage d’une Xsession tous les scripts présents dans/etc/X11/Xsession.d sont exécutés avec une séquence de démarrage suivant leur ordre alphanumérique. Compte tenu de ces éléments, le script sera placé dans le dossier /etc/X11/Xsession.d et nommé de façon à être exécuté en premier :00reinitpublic.

Les tâches du script de commandes consisteront à supprimer l’ensemble des dossiers et fichiers de /home/public puis à copier et coller l’ensemble des dossiers et fichiers de /home/modele (dossiers et fichiers cachés inclus pour les deux opérations). Dans chacun des cas, il faudra exclure le dossier courant (simple point : « . ») et le dossier parent (double point : « .. »).

Commandes et script de commandes

Création du script dans /etc/X11/Xsession.d

sudo su
cd /etc/X11/Xsession.d
touch 00reinitpublic

Édition de 00reinitpublic

L’édition du contenu de 00reinitpublic pourra être faite avec un éditeur de texte pour terminal (Vi ou Vim) ou un éditeur graphique (Gedit). Quelque soit l’option, il faut être identifié sudo.

REINIT_SOURCE=/home/modele
if [ "$USER" = "public" ] ; then
# Suppression de tous les fichiers et dossiers dans $HOME
a_supprimer=`ls -a $HOME`
for f in $a_supprimer ; do
if [ "$f" != "." -a $f != ".." ] ; then
rm -rf $HOME/$f
fi
done
# Copie dans $HOME de tous les fichiers et répertoires de $REINIT_SOURCE
a_copier=`ls -a $REINIT_SOURCE`
for c in $a_copier ; do
if [ "$c" != "." -a $c != ".." ] ; then
cp -r $REINIT_SOURCE/$c $HOME
fi
done
fi

Attribution des droits d’exécution pour 00reinitpublic

sudo su
cd /etc/X11/Xsession.d
chmod + x 00reinitpublic

Lancement de contrôle de 00reinitpublic en mode terminal

Il conviendra d’ajouter la commande echo avant les commandes rm et cp du script afin d’afficher les actions exécutées pour contrôler le bon fonctionnement de 00reinitpublic.

sudo su public -c « env USER=public HOME=/home/public /etc/X11/Xsession.d/00reinitpublic »

Option d’archivage des contenus de /home/public

Dans l’hypothèse d’un archivage des contenus du dossier /home/public, il est possible de modifier le script après la ligne if ["$USER" = "public" ] ; then en ajoutant les lignes suivantes :

# Archivage de $HOME
tar -czvf /var/sauvegardes/$USER`date+%y%m%d%H%M%S`$$.tgz $HOME

Conclusion

L’exécution de script se réalise uniquement à l’identification de public avec le serveur graphique X et garanti une maintenance réduite conformément au besoin défini. Ce travail pourrait être exploité sur la base d’un mise en réseau de l’environnement modèle adossé aux fonctions de partage de NFS.


Le contenu de ce document a été réalisé par Philippe Allart et David Vanhoutte. Il est sous licence : CC BY-SA v3.0

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>