Les commandes de base :

notion de fichiers et droits


Objectifs

A l'issue de ce TP vous montrerez que vous êtes capable :

Présentation

Ce deuxième TP vous permet d'écrire et d'exécuter vos premières commandes dans un terminal sous le système d'exploitation Linux. Ces commandes de base vont vous permettre d'assimiler la notion de fichiers et de parcourir l'arborescence classique du système. Cette notion très importante permet d'accéder à tout type de ressources (disques, réseau, ...). Etant un système multi-utilisateurs, nous introduisons tout de suite la notion de droits d'accès à une ressource (ici les fichiers ou répertoires).

Vous rédigerez un compte rendu dans lequel vous justifierez les options des commandes que vous avez utilisé pour réaliser les actions demandées et repérées par =>.

Outils

 Rappel : Les contenus des cours, des TD et des TP précédents sont nécessaires pour faire les TP. Vous devez impérativement les avoir avec vous et les connaitre pour chaque séance de TP (et avoir revu les TP précédents).

Matériel nécessaire : 1 disquette par binôme

Condition de départ : vous avez démarré votre session sous Windows.

Travail Demandé 

1. Préparation du support

       => Depuis le poste de travail (Windows), formattez la disquette,

       => Créez un fichier texte, par binôme, avec un éditeur de texte simple (Notepad) contenant vos coordonnées, en respectant scrupuleusement la syntaxe suivante :
    # 1er membre du binôme
    <Nom> <Prénom>
    <Adresse>
    <Code postal> <Ville>
    <Adresse mél>
    # 2eme membre du binôme
    <Nom> <Prénom>
    <Adresse>
    <Code postal> <Ville>
    <Adresse mél>
    # Fin de fichier
rem : se limiter uniquement à une ligne par item; chaque ligne commence par un caractère (# pour un commentaire) et non un espace.

       => Sauvegardez sur disquette ce fichier sous le nom : <N° de binôme>.txt,
    ex: B3.txt

       => Enlevez la disquette, puis redémarrer votre ordinateur en ouvrant une session Linux.

2. Montage de périphériques de données

Linux considére tout périphérique de données comme un répertoire ajouté à l'arborescence du système.
Pour accéder à un périphérique, il convient de le "monter" : le nom du périphérique est alors associé à un point "d'encrage" dans l'arborescence.
Il suffit ensuite de parcourir cette branche de l'arborescence pour lire, copier, déplacer, ... les données du périphérique.

IMPORTANT : En fin d'utilisation, vous devez impérativement "démonter" les périphériques que vous avez "montés".

       => Visualisez et notez la liste des périphériques (et leurs points d'encrage) accessibles ou disponibles dans le fichier /etc/fstab,
       => Commentez chaque ligne de ce fichier,

Pour récupérer les données du fichier qui se trouve sur la disquette, il faut les transférer dans votre arborescence.
       => Montez la disquette à l'aide de la commande :
mount
       => Copiez le fichier <N° de binôme>.txt dans votre répertoire de login,
       => Démontez la disquette à l'aide de la commande :
umount
       => Créer à l'aide d'emacs une copie du fichier <N° de binôme>.txt que vous nomerez <N° de binôme>lnx.txt en copiant le texte de <N° de binôme>.txt vers le nouveau fichier <N° de binôme>lnx.txt par l'intermédiaire d'un buffer, puis sauvegardez ce nouveau fichier dans votre répertoire de login,
       => Copiez ce nouveau fichier sur votre disquette,
       => A l'aide de l'outil approprié, comparez le contenu de ces deux fichiers, observez les codes ASCII de ces deux fichiers,
       => Allez sur le poste de l'enseignant pour visualiser son contenu et valider votre travail,

       => Formattez votre disquette (qui s'appelle sous Linux /dev/fd0) au format ext3 à l'aide de la commande :
/sbin/mkfs.ext3 /dev/fd0
rem : la commande mkfs.ext3 se trouve dans le répertoire /sbin. Le système n'accède pas à ce répertoire par défaut, c'est pour cela qu'il faut lui préciser le chemin complet de cette commande.

       => Copiez le fichier <N° de binôme>lnx.txt sur votre disquette,
       => Allez sur le poste de l'enseignant pour visualiser le contenu de la disquette et du fichier et faites valider votre travail,

       => Reprenez ces manipulations (formattage au format vfat, copie de fichier, lecture) avec l'outil graphique lancé par la commande : usermount

3. Mise en oeuvre des redirections

    Vous allez créer un guide de commandes unix (guide.cmd.unix) au fur et à mesure de l'utilisation des commandes au cours de ce TP.
    Pour cela vous utiliserez les redirections vues en TD.
        => Testez la création de votre guide en le "remplissant" par le listage de votre répertoire courant.
        => Visualisez son contenu à l'aide de la commande more.
        => Essayez d'y ajouter le résultat de l'éxecution de la commande dire
        => Essayez d'y ajouter le résultat de l'éxecution de la commande dire, en utilisant la commande dire 2>guide.cmd.unix
        => Essayez d'y ajouter le résultat de l'éxecution de la commande dire, en utilisant la commande dire &>guide.cmd.unix
        => Testez la redirection de l'entrée avec la commande cat <guide.cmd.unix.
        => Effacez ce guide.

4. Mise en oeuvre de la commande man

    De nombreuses commandes sont détaillées dans les pages de manuel (pages man) disponibles par la commande man <nom de commande>.
    On navigue dans le manuel à l'aide des flèches de déplacement, on quitte cette commande à l'aide de la touche Q.
        => Consultez le manuel de la commande man
        => Créez votre guide en y écrivant les commandes vues en TD (cd, pwd, mkdir, rmdir, ls, rm, alias...) par redirection
        => A l'aide d'un éditeur de texte simple (kedit ou gedit par exemple) consultez votre guide

5. Etude de l'arborescence : chemin absolu / chemin relatif et affichage

    A l'aide des pages du manuel Linux,
       => Etudiez les commandes cp et mv
    A l'aide des commandes de navigation et de création de répertoire dans l'arborescence de votre compte,
        => Créez l'arborescence suivante:
        ~/Systeme1/Tp1/ ;  ~/Systeme1/Tp2/ ; ... ~/Systeme1/Tp7/
        ~/Reseau1/Tp1/ ;  ~/Reseau1/Tp2/ ; ... ~/Reseau1/Tp15/
        ~/Algo1/Tp1/ ;  ~/Algo1/Tp2/ ; ... ~/Algo1/Tp15/
        ~/Archi1/Tp1/ ;  ~/Archi1/Tp2/ ; ... ~/Archi1/Tp15/
        ~/EU1/Tp1/ ;  ~/EU1/Tp2/ ; ... ~/EU1/Tp15/
        ~/Telecom1/Tp1/ ;  ~/Telecom1/Tp2/ ; ... ~/Telecom1/Tp15/
    A l'aide des commandes de navigation, de déplacement et de destruction de répertoire dans l'arborescence de votre compte,
        => Rangez tous les fichiers relatifs aux TP déjà réalisés dans la nouvelle arborescence,
        => Contrôllez le travail réalisé à l'aide des outils graphiques  konqueror et nautilus,
        => Supprimez, avec ces mêmes outils graphiques, l'ancienne arborescence de votre compte.

6. Gestion des fichiers : création, visualisation, copie, changement et effacement

    A l'aide des pages du manuel Linux,
       => étudiez les commandes touch, echo,quota, et more.
       => que se passe-t-il lorsqu'une commande est suivi du caractère & ?
       => créez, modifiez des fichiers texte à l'aide des commandes tappées dans un terminal et visualisez  les à l'aide des éditeurs gedit et khexedit.
       => étudiez les commandes principales de l'interpréteur de commande bash
       => imprimez votre compte rendu à l'aide de la commande a2ps
 

7. Notions de droits et de propriété

Le système Linux est un système multi-utilisateurs. Certains utilisateurs ont des droits particuliers (ex: root) . Les droits se décomposent en 3 catégories : lecture, écriture et exécution, pour trois types d'utilisateur : le propriétaire, le groupe, les autres.

En mode console :
       => Positionez les droits en lecture seule pour le propriétaire et lui seul sur le répertoire ~/Systeme1. Que pouvez-vous (vous et votre binôme) faire du répertoire Systeme1 et des fichiers qu'il contient ?
       => Que devez-vous faire pour lister le contenu de ~/Systeme1 ?
       => Que devez-vous faire pour que votre binôme puisse lister le contenu de ~/Systeme1 ? N'y-a-t-il que votre binôme qui peut lister ce répertoire ?
       => Copiez le fichier <N° de binôme>lnx.txt dans ~/Systeme1,

       => Positionez les droits en écriture seule pour le propriétaire et lui seul sur le répertoire ~/Systeme1. Que pouvez-vous faire du répertoire Systeme1 et des fichiers qu'il contient ?
       => Copiez le fichier <N° de binôme>.txt dans ~/Systeme1,
       => Créez un sous-répertoire Temp dans ~/Systeme1,
       => Que devez-vous faire pour vérifier la présence du fichier copié et du répertoire créé ?
       => Que devez-vous faire pour que votre binôme puisse ajouter un fichier dans ~/Systeme1 ?
       => Dans ce cas, peut-il supprimer le fichier qu'il vient de copier ?
       => Peut-il supprimer d'autres fichiers ? Dans quels cas ?

       => Positionez les droits en exécution seule pour le propriétaire et lui seul sur le répertoire ~/Systeme1.
       => Que pouvez-vous (vous et votre binôme) faire du répertoire Systeme1 et des fichiers et répertoires qu'il contient ?
       => Copiez les fichiers <N° de binôme>.txt et <N° de binôme>lnx.txt présents dans votre répertoire de login vers ~/Systeme1/Temp,
       => Vérifiez la présence des fichiers copiés.

Vous savez maintenant gérer vos droits sur un répertoire.

En mode graphique :
       => Créez le fichier cmd dans ~/Systeme1/Temp qui contient le texte "date",
       => Modifiez les droits de ce fichier du répertoire ~/Systeme1/Temp en  :
            lecture seule => testez les possilités d'accès à ce fichier,
            lecture et écriture seule => testez les possilités d'accès à ce fichier,
            exécution => testez les possilités d'utilisation de ce fichier (qui est exécutable ...).

Vous savez maintenant gérer les droits d'un fichier.

En mode console :
       => Créez le répertoire Partage dans ~,
       => Mettre les droits minimum sur ~ et Partage afin de permettre l'accès en écriture seule pour les membres du groupe gtr1 et  l'accès complet pour vous,
       => Copiez le fichier <N° de binôme>lnx.txt vers le répertoire Partage de votre voisin, qui fera de même,
       => Visualisez le contenu du fichier reçu dans votre répertoire Partage,
       => Créez un nouveau fichier <N° de binôme>2.txt copiez-y les données de votre voisin puis insérez (en respectant la même syntaxe) vos données. Votre voisin fera de même.
       => Vérifiez que ce fichier ne possède pas les droits en écriture pour le groupe,
       => Copiez le fichier <N° de binôme>2.txt dans le répertoire Partage de votre voisin, qui fera de même,
       => Sauvegardez le fichier reçu dans votre répertoire TP,
       => Est-il possible de supprimer votre répertoire Partage ?
       => Changez le propriétaire du fichier dans le répertoire Partage de votre voisin, qui fera de même.
       => Supprimez le répertoire Partage.

Vous savez maintenant gérer les propriétaires et les groupes d'un fichier.
 
En mode console :
       => Quels sont les droits nécessaires pour un fichier et un répertoire pour pouvoir appliquer la commande chown ?
       => Changer le propriétaire d'un de vos fichiers pour l'attribuer à votre voisin, qui le copiera dans son répertoire Partage,
       => Quels sont les droits nécessaires pour un fichier et un répertoire pour pouvoir appliquer la commande chgrp ?

Vous savez maintenant gérer les propriétaires et les groupes d'un fichier.

8. Alias

       => Visualisez les alias prédéfinis à l'aide de la commande :
alias
       => Déterminez visuellement la commande passée la plus utilisée et créez un alias correspondant :
alias <nom_alias>='<commande>'

    [ Noubliez pas d'envoyer votre compte-rendu et de le compléter pour la séance suivante ]