Updated Modifié

L’objectif de cette séance est de mettre en place un OS que vous contrôlerez entièrement, puis de le configurez et de l’utiliser afin de revoir les bases dans un premier temps. Il est recommandé de prendre des notes, celle-ci pourront être envoyées à votre chargé de TP (prenom.nom@univ-amu.fr) à la fin de la journée pour avoir un retour.

choisir LUNIX comme système de travail (d’ailleurs qu’est-ce que thinOS ?)

1. Installation d’un OS (virtuel)

Qu’est-ce que la virtualisation ?

Nous allons manipuler des machines virtuelles (VMs). Le système sous lequel vous êtes actuellement sera dénommé système hôte. Comme toute machine physique, une machine virtuelle est composée de

  • un CPU (partagé avec le système hôte et les autres VMs)
  • de la RAM (non partagée)
  • un disque dur virtuel sur lequel est installé un système d’exploitation
  • des périphériques :
    • partagés (clavier, souris, écran, …)
    • dédiés, virtuels (comme les cartes réseaux)

1.1. Installation “à la main”

Facultatif si vous avez déjà effectué ce type d’installatuon

  • télécharger l’image ISO d’installation debian
  • lancer virtualbox
  • avec l’interface graphique, créer une nouvelle machine virtuelle (quels sont les “bons” paramètres ?)
  • démarrer la machine et choisir comme “CD” l’image ISO précédemment téléchargée
  • faire l’installation du système
    • prendre les options par défaut
    • choisir comme environnement XFCE4
    • il y a un tutoriel ici avec de la documentation, et pour aller plus loin,

Notez tous les points de la procédure en lien, selon vous, avec les aspects “système”.

Attention, vérifier s’il vous reste assez de place pour la suite avec la commande

$ quota -s

Supprimer cette VM si nécessaire. Supprimer également l’image ISO téléchargée.

1.2. Installation plus rapide / plus “moderne”

La machine virtuelle se configure avec vagrant. (en fait vagrant apporte une couche d’abstraction aux logiciels de virtualisation — VirtualBox, VMWare, … — que vous avez utilisé au point précédent). On ne peut configurer ses aspects “physiques” virtualisés (RAM, nombres et branchement des interfaces réseaux, …) que lorsque la machine est éteinte. Le système d’exploitation de la VM s’administre avec ses propres outils d’administration, quand la VM est démarrée.

Mise en Oeuvre

Ici nous utiliserons vagrant. L’image préinstallée à utiliser est à télécharger puis stocker sur /tmp/debianTP.box (en lecture seule). Cette image contient une version minimaliste de Debian/XFCE. Nous allons faire ces étapes pas-à-pas.

NB Ces indications sont valables uniquement sur les postes DOSI, adapter si nécessaire les chemins concernés sur votre propre PC.

Les disques complets de ces VMs sont gros, pour pouvoir être stockées sur votre compte, il faudra vérifier qu’il y a assez de place libre.

  1. Vérifier que vous disposez bien d’au moins 1Go de libre sur votre compte:
    $ quota -s
    
    la seconde valeur soustraite de la première doit faire au moins 2,5Go.
  2. Vérifier que vous disposez bien d’une partition locale accessible d’au moins 20 Gio:
    $ df -h /tmp
    Sys. de fichiers    Taille  Uti. Disp. Uti% Monté sur
    /dev/sda4              78G  3,1G   75G   4% /tmp   
    

  3. Compte-rendu : faire un compte-rendu de vos opérations, questions (et réponses …) afin d’avoir une trace de ce que vous avez réalisé. NB: vous devez être capable d’expliquer ce que fait chaque commande shell (ainsi que ses options).
  1. Copier l’image depuis le réseau:

    $ cd /tmp/
    $ curl -o debianTP.box https://pageperso.lis-lab.fr/emmanuel.godard/boxes/debianTP.box
    $ curl -o debianTP.box.md5 https://pageperso.lis-lab.fr/emmanuel.godard/boxes/debianTP.box.md5
    $ md5sum -c debianTP.box.md5
    

Votre première VM

Mise en place de votre “box”

Nous allons maintenant indiquer à `vagrant` quelles images disques seront virtualisées. C’est à faire une seule fois sur la semaine.

$ vagrant box add /tmp/debianTP.box --name "m1reseaux"
// si la commande précédente échoue, cela signifie que la box est déjà en place
// Pour la supprimer: $ vagrant box remove "m1reseaux"
  • Avant de continuer, vérifier que la box est bien installée
    $ vagrant box list
    m1reseaux                       (virtualbox, 0)
    

Configuration de la VM

  • Créer un répertoire soutienSR et un sous-répertoire tp1, puis VM1
    $ mkdir -p ~/soutienSR/tp1/VM1
    $ cd ~/soutienSR/tp1/VM1
    

  • dans ce répertoire VM1, copier le fichier Vagrantfile. Il décrit les propriétés de votre machine vituelle VM1
  • lancer la VM
    $ vagrant up
    

    La connexion est automatique. Votre login est m1reseaux, votre mot de passe identique.

Compte-rendu

  1. Au démarrage de la VM, lire les informations.
  2. Quels sont les paramètres “physiques” de votre VM ?
  3. Pouvez-vous vous connecter à Internet, à la page du TP avec wget?
  4. Stopper la VM avec
    $ vagrant halt
    

2. Découverte de l’environnement

2.1. Environnement graphique

Il s’agit de XFCE (que vous pouvez aussi choisir sur le système AMU), naviguez dans les menus, configurer le fond d’écran, etc …

2.2. Terminal

Lancer un terminal (lequel ? combien y en a-t-il ? comment choisir ?)

3. Utilisation de base

3.1. La base basique

facultatif: à faire selon votre propre estimation

Lire cette page et faire les TP1 et TP2 sur cette page.

3.2. Rappels d’utilisation

rappel : le shell est un environnement de programmation système interactif. Les paramètres des fonctions/commandes sont principalement positionnels.

La documentation détaillée se trouve

Faire les TP3 à TP6 sur cette page.

NB on devient root sur votre système avec la commande sudo (documentation et tutoriel).

Au delà des spécificités syntaxiques, noter la proximité avec un langage de programmation interactif, comme la REPL de python3.

4. Utilisation administrateur

4.1. Rappels

  1. qu’est-ce que l’administrateur ? pourquoi s’appelle-t-il root sous UNIX ?
  2. on devient root sur votre système avec la commande sudo (documentation et tutoriel),
  3. devenir root et tester la commande whoami.

4.2. Exercices

Effectuer les exercices droits d’accès en parallèle dans deux fenêtres, l’une en tant que simple utilisateur, l’autre en tant qu’administrateur.

5. Une application simple et efficace de sauvegarde

On souhaite (ré)écrire un script de sauvegarde incrémentielle en bash. Ce script utilisera deux variables

  • SRC : le répertoire à sauvegarder
  • SVGD : le répertoire contenant les sauvegardes sous la forme AAAA-MM-JJ_HH:MM:SS, cette chaîne correspond à la date et l’heure auxquelles est invoqué le script.

Revoir les bases.

5.1. Version simple

On va commencer par copier simplement le répertoire (et ses sous-répertoires) SRC en conservant tous les attributs systèmes (dates, propriétaires, droits d’accès …).

  • quelle est l’option de cp permettant de conserver (archiver) les attributs ?
  • il existe une commande appellée rsync. Expliquer pourquoi elle est différente de cp.
  • pourquoi faut-il lancer le script avec des droits root ?

**Corrigé**

5.2. Version efficace

On va implémenter la version dite “incrémentielle”, ie qui ne stocke que les fichiers modifiés par rapport à la précédente sauvegarde.

Rappels :

  • qu’est-ce qu’un lien ? un lien symbolique ?
  • quels sont les paramètres pour la commande ln

Le principe est de faire un lien vers la version sauvegardée précédemment lorsque le fichier n’a pas été modifiée depuis. Les fichiers modifiés sont eux copiés comme précédemment.

Pour finir, comparer les tailles des répertoires avec la commande du -h.

**Corrigé**

5.3. Version installée

Utiliser cron pour lancer ce script de sauvegarde toutes les heures.