B. Droits d'accès (60 min)
a) Les droits sous Linux
Un système de protection sur les fichiers permet d'en contrôler l'accès. On va apprendre à utiliser ce système sous Linux, à la fois par l'interface graphique et en ligne de commande, pour découvrir, en fin de séance, comment partager des fichiers de son répertoire personnel avec d'autres utilisateurs.
B1Créez un fichier
Test.txt sur votre bureau, faites un clic droit dessus et
choisissez Propriétés dans le menu déroulant. Enfin,
sélectionnez l'onglet Droits d'accès dans la boîte de
dialogue.
Plusieurs informations sur le fichier sont
disponibles :
Le groupe d'un fichier est un des groupe de son propriétaire (par défaut, celui que le propriétaire avait au moment de sa création). On peut toutefois changer le groupe d'un fichier en un autre groupe auquel appartient son propriétaire. Cela sera détaillé dans la partie suivante.
- Dans le cadre Appartenance, le nom du propriétaire du fichier, normalement vous-même, ainsi que le nom du groupe auquel appartient le fichier, qui est par défaut le groupe de son propriétaire au moment de la création.
- Dans le cadre Droits d'accès, les droits accordés au propriétaire, aux utilisateurs de même groupe que celui du fichier, et à tous les autres utilisateurs. Ces droits sont modifiables par l'intermédiaire de menus déroulants.
De façon générale, les droits accordés aux utilisateurs sont de trois types :
- Lecture : pour un fichier, pouvoir le lire, et pour un répertoire, pouvoir voir et lister son contenu.
- Écriture : pour un fichier, pouvoir écrire dedans, et pour un répertoire, pouvoir effacer ou créer des fichier ou sous-répertoire dans ce répertoire.
- Exécution : pour un fichier, l'exécuter, si c'est un programme exécutable, et pour un répertoire, pouvoir le traverser pour accéder à des sous-répertoires.
À l'aide de la souris, on peut modifier une partie de ces droits. Un contrôle plus précis peut se faire en mode texte, on le verra dans la partie suivante.
Les 5 questions suivantes sont à faire en changeant les droits du Propriétaire des fichiers et répertoires considérés.
B2Supprimez le droit d'écriture du fichier Test.txt. Ouvrez celui-ci avec un éditeur de texte
et essayez d'écrire quelque chose dans le fichier et de sauvegarder.
B3Rétablissez les droits d'écriture de Test.txt et écrivez quelques lignes dans ce fichier.
Supprimez ensuite le droit de lecture (Interdit dans le menu déroulant) et essayez d'ouvrir le fichier.
B4Dans votre répertoire personnel, créez un répertoire Photos, dans ce répertoire, créez un fichier texte Paysage et un sous-répertoire Vacances.
B5Supprimez le droit d'écriture (modifier le contenu) sur le répertoire Photos. Essayez de supprimer le fichier Paysage. Essayez de créer un fichier Montagnes dans le répertoire Photos. Rétablissez le droit d'écriture sur le répertoire Photos.
B6Supprimez le droit de lecture (voir le contenu)
du répertoire Photos
et essayez d'accéder à son contenu. Rétablissez le droit de lecture ; en cas d'impossibilité, vous pouvez le faire
en ligne de commande, comme cela sera expliqué ci-dessous : chmod u+r Photos
.
b) Avec la ligne de commande
En utilisant des instructions en ligne de commande, il est possible de gérer plus finement les droits que précédemment. On peut alors utiliser les droits pour sécuriser certaines parties d'un répertoire personnel et en laisser d'autres accessibles aux autres utilisateurs.
Tous les exercices sont à faire en ligne de commande. Si vous ne vous en souvenez plus, regardez dans le TP1 l'utilité des commandes ls, cd et pwd.
B7Ouvrez un terminal et placez-vous dans le répertoire Photos.
Avant de travailler explicitement sur les droits des fichiers, revenons sur l'appartenance aux groupes.
La commande id (pour "identity") vous donne des renseignements sur votre login et le numéro d'utilisateur associé, sur votre groupe et le numéro de groupe associé ainsi que la liste des groupes auxquels vous appartenez (possiblement qu'un seul pour l'instant...) : B8essayez-la !
Un utilisateur appartenant à plusieurs groupes peut changer son groupe courant par la commande chgrp. Les fichiers et répertoires créés par lui appartiendront ensuite à ce nouveau groupe.
Maintenant, revenons sur les droits.
B9Tapez la commande ls -l. L'option -l donne des informations sur les fichiers listés.
Pour chaque fichier ou répertoire, les dix premiers caractères correspondent aux droits du fichier (voir figure). Plus précisément, le premier caractère correspond au type de fichier (- pour un fichier 'normal', d pour un répertoire, pour les plus courants), les trois suivants correspondent aux droits de l'utilisateur (u sur la figure pour "user"), les trois suivants à ceux du groupe (g pour "group") et les trois derniers à ceux des autres utilisateurs (o pour "other"). Pour chaque type d'utilisateur, les droits sont, dans l'ordre, r ("read") pour la lecture, w ("write") pour l'écriture et x ("execute") pour l'exécution. Si un des droits n'est pas autorisé, un tiret - apparaît à la place de la lettre correspondante.
Par exemple, chmod 614 NomDuFichier signifie : accès autorisé en lecture et écriture pour le propriétaire (4+2=6), en exécution pour le groupe (1) et en lecture pour les autres (4).
La commande chmod permet de changer les droits d'un fichier. Elle s'utilise de la façon suivante : chmod UTILISATEURS SIGNE DROITS NomDuFichier, où :
- UTILISATEURS est une combinaison des lettres u, g et o pour désigner les utilisateurs,
- SIGNE est +,- ou = pour ajouter, retirer ou fixer des droits,
- DROITS est une combinaison des lettres r, w et x pour désigner les droits.
Par exemple, chmod ug+w lulu.txt ajoute sur le fichier
lulu.txt les droits d'écriture à l'utilisateur et aux membres
du groupe auquel le fichier appartient. Un autre exemple : chmod
o=rx lulu.txt fixe les droits de lulu.txt à lecture et
exécution (et pas écriture) pour les utilisateurs autres.
B10Ajoutez le droit d'exécution aux utilisateurs "groupe" pour le fichier Paysage et retirez ceux de lecture aux utilisateurs "autres" (pensez à vérifier l'effet de vos commandes en tapant ls -l).
En une seule commande, B11fixez les droits de Paysage et Vacances pour les utilisateurs "autres" à exécution uniquement (pensez aux jokers, vus à la séance précédente).
On va voir maintenant comment donner ou enlever à un répertoire la possibilité d'être traversé,
en jouant sur le droit "x" d'un répertoire.
B12Placez-vous dans le répertoire Vacances et tapez la commande touch plage qui permet de créer le fichier (vide) plage. Revenez dans le répertoire Photos.
B13Supprimez le droit d'exécution (pour l'utilisateur, vous) sur le répertoire Vacances.
B14Essayez de vous placer dans ce répertoire. Cela n'est pas possible puisque le droit de traverser ce répertoire a été supprimé. Par contre, il est toujours possible de lire (lister) son contenu : la commande ls Vacances fonctionne.
B15Rétablissez le droit d'exécution sur le répertoire Vacances.
Inversement, on peut garder le droit de traverser un répertoire tout en interdisant sa lecture.
B16Remontez dans
votre répertoire personnel, et supprimez (pour l'utilisateur, vous), le droit de lecture du
répertoire Photos.
B17Placez-vous dans ce répertoire
(ce qui est possible, le droit de le traverser est toujours activé) et
essayez de lister son contenu, ce qui ne fonctionne pas.
On peut noter qu'il est toujours possible de se déplacer dans des sous-répertoires du répertoire
Photos à condition d'en connaître les emplacements exacts.
B18Essayez cd Vacances.
B19Rétablissez le droit
de lecture sur le répertoire Photos.
Pour finir, regardons les droits de votre répertoire personnel.
B20Placez-vous dans votre répertoire personnel et remontez d'un cran dans l'arborescence des fichiers par la commande cd .. . Le répertoire où vous vous trouvez contient les répertoires personnels de tous les étudiants, même s'ils ne sont pas tous visibles (essayez ls).
À l'aide de la commande ls -dl suivi de votre login, B21observez les droits de votre répertoire personnel (l'option d de ls permet d'avoir des informations sur un répertoire et non sur son contenu).
Vous remarquez que les autres utilisateurs
ne peuvent pas traverser votre répertoire.
Cependant, d'une manière générale, il faut faire attention aux droits que vous
donnez à vos fichiers et répertoires.
c) Les droits d'accès sous Windows
Les droits d'accès sont gérés par le système de fichiers qui héberge les fichiers sur le réseau. Il est possible de les changer de façon intuitive avec l'interface graphique en demandant le menu contextuel (clic droit) sur le nom du fichier/dossier concerné. Toutefois, les types de droits que vous pouvez positionner depuis Windows passent au filtre des types de droits que Windows a l'habitude de gérer : il est donc peu conseillé de changer les droits de vos fichiers depuis le système Windows.