Vous êtes sur la page 1sur 13

155

Chapitre 7
Droits d'accès aux fichiers

1. Concepts de comptes utilisateur et de groupes


Droits d'accès aux fichiers

Le système GNU/Linux étant multiutilisateur, les personnes employant celui-


ci doivent être identifiées afin d'assurer la confidentialité des informations
contenues dans les fichiers. En effet, il ne serait pas acceptable que l'utilisateur
"Nicolas" puisse consulter les fichiers personnels de "Richard" sans l'accord de
ce dernier.
Ces personnes possèdent donc chacune un "compte utilisateur" sur le
système ; elles peuvent utiliser ce dernier tout en étant clairement identifiées.
Cependant, il est permis de partager des fichiers entre collaborateurs et une
notion de "groupe d'utilisateurs" existe sous GNU/Linux.
Un utilisateur doit obligatoirement être membre d'un groupe d'utilisateurs sur
un système Unix comme GNU/Linux : c'est son groupe principal qui est uti-
lisé lors de la création des fichiers. Par contre, il peut éventuellement apparte-
nir à plusieurs autres groupes : ses groupes secondaires déterminent ses droits
d'accès aux fichiers créés par d'autres membres des groupes.
156 Linux
Principes de base de l’utilisation du système

Par exemple, si l'on représente les différents services d'une société avec leurs
personnels, bien que chaque individu ait une fonction première (indiquée
entre parenthèses), certains peuvent assumer plusieurs missions :

On voit ici que :


– Richard et Gérald appartiennent tous les deux au service technique (Tech).
– Nicolas, qui est avant tout formateur (Cours), fait aussi partie du service
technique (Tech).
– Willy, appartenant au service technique (Tech) principalement, travaille
aussi dans le service formation (Cours).
– Linus est un formateur (Cours) qui collabore avec les services technique
(Tech) et comptabilité (Compta).
– Gérard, du service technique (Tech), offre ses compétences au service
commercial (Vente).
– Alain est un commercial (Vente) qui s'acquitte aussi de tâches administra-

© Editions ENI - All rights reserved


tives (Compta).
– Soraya fait uniquement partie du service comptabilité (Compta).
Pour identifier tous ces utilisateurs au niveau du système d'exploitation, un
numéro unique leur est attribué : l'UID (User ID) ; le propriétaire d'un fichier
est déterminé par ce numéro sous Unix. Ces utilisateurs sont aussi dotés d'un
nom d'utilisateur unique (login) et d'un mot de passe (password) pour qu'ils
puissent s'authentifier lors de leur connexion au système.
Droits d'accès aux fichiers 157
Chapitre 7

De la même manière, les groupes d'utilisateurs sont représentés par un nom


unique auquel est associé un identifiant numérique : le GID (Group ID). Ce
dernier est également utilisé pour déterminer le groupe propriétaire d'un
fichier.

1.1 Hiérarchie des utilisateurs

Les utilisateurs, et par conséquent les comptes utilisateur, ne sont pas tous
égaux sous Unix. On peut distinguer trois types de comptes :
root
C'est l'utilisateur le plus important du système du point de vue de l'adminis-
tration. Il n'est pas concerné pas les droits d'accès aux fichiers et peut faire
à peu près tout sur le système, excepté écrire sur un système de fichiers
monté en lecture seule (CD-ROM). Son UID égal à 0 lui confère sa spécifi-
cité. Ce "super-utilisateur" a donc à sa charge les tâches d'administration du
système. Pour éviter toute erreur de manipulation, il est fortement conseillé
d'utiliser le compte d'administration uniquement pour les tâches nécessi-
tant les droits du super-utilisateur.
bin, daemon, sync, apache...
Il existe sur le système une série de comptes qui ne sont pas affectés à des
personnes physiques. Ceux-ci servent à faciliter la gestion des droits d'accès
de certaines applications et démons. Les UID compris entre 1 et 999 sont gé-
néralement utilisés pour ces comptes.
linus, nicolas...
Tous les autres comptes utilisateur sont associés à des personnes réelles ;
leur vocation est de permettre à des utilisateurs standards de se connecter
et d'utiliser les ressources de la machine. L'UID d'un utilisateur est normale-
ment un nombre supérieur ou égal à 1 000.

Remarque
On appelle "démons" les programmes s'exécutant en tâche de fond, comme
un serveur web ou un serveur d'impression.
158 Linux
Principes de base de l’utilisation du système

À l'instar des comptes utilisateur, il existe différents types de groupes sur un


système GNU/Linux permettant de donner des droits communs à un
ensemble d'utilisateurs :
root
Son GID est 0 et c'est le groupe principal de l'administrateur.
bin, daemon, sync, apache...
Ces groupes ont le même rôle que les comptes du même nom et permettent
de donner les mêmes droits d'accès à un ensemble d'applications. Par
convention, les groupes système ont un GID compris entre 1 et 999.
cours, tech...
Ces groupes représentent un ensemble de personnes réelles devant accéder
aux mêmes fichiers. Typiquement, ils ont un GID supérieur ou égal à 1000.

1.2 Commandes utiles

Les commandes id et groups permettent d'afficher les informations en


rapport avec les groupes. La première donne l'UID de l'utilisateur, le GID de
son groupe principal et les GID de tous les groupes auxquels il appartient. La
seconde ne fournit que la liste complète des groupes mais accepte plusieurs
noms d'utilisateurs en argument :
[nicolas]$ whoami
nicolas
[nicolas]$ id
uid=1000(nicolas) gid=1000(cours) groupes=1000(cours),1001(tech)
[nicolas]$ id dennis
uid=1002(dennis) gid=1001(tech) groupes=1001(tech)

© Editions ENI - All rights reserved


[nicolas]$ groups
cours tech
[nicolas]$ groups gerard alain willy root
gerard : tech cours vente
alain : vente compta
willy : tech cours
root : root
Droits d'accès aux fichiers 159
Chapitre 7

2. Droits Unix
Les permissions d'accès aux fichiers déterminent les actions que peuvent
entreprendre les utilisateurs.

Remarque
La majorité des problèmes d'installation, de configuration et de fonctionne-
ment des applications sous GNU/Linux est due à des droits d'accès mal posi-
tionnés.

En premier lieu, il est nécessaire de savoir que les droits d'accès sous Linux sont
définis pour :
– Un compte utilisateur : propriétaire du fichier, c'est en principe l'utilisateur
qui a créé celui-ci.
– Un groupe : ce groupe est généralement le groupe principal du propriétaire
du fichier mais peut être modifié par ce dernier et prendre la valeur d'un de
ses groupes secondaires.
– Les autres : cette entité représente toute personne autre que le propriétaire
et qui n'est pas membre du groupe cité précédemment.

Remarque
Les droits d'accès à un fichier sont aussi appelés "modes" sous Unix.

Les droits, l'utilisateur et le groupe propriétaires d'un fichier sont affichés avec
la commande ls -l :
160 Linux
Principes de base de l’utilisation du système

Dans ce dernier exemple, le fichier appartient à l'utilisateur willy et au


groupe tech ; les neuf caractères rw-r--r-- définissent les droits d'accès à
ce fichier pour l'utilisateur willy (user ou u), les membres du groupe tech
(group ou g) et les autres (other ou o). Plus précisément, ces caractères sont
répartis comme suit :

Tout utilisateur est donc associé à l'une de ces entités pour déterminer les per-
missions en vigueur.

Remarque
Attention, si l'utilisateur est propriétaire du fichier, ce sont les droits du proprié-
taire qui s'appliquent et non ceux du groupe, même si cet utilisateur est aussi
membre de ce groupe.

La commande GNU ls peut ajouter un caractère supplémentaire à la suite des


neuf droits Unix standards lorsque des autorisations particulières sont posi-
tionnées. Un point . indique alors un contexte sécurité SELinux spécifique et
un + indique qu'une autre méthode d'autorisation telle que des ACL (Access
Control Lists) est utilisée.

2.1 Droits standards

Les droits d'accès fondamentaux sur les fichiers et les répertoires sous Unix/

© Editions ENI - All rights reserved


Linux sont les droits de lecture r (Read), d'écriture w (Write) et d'exécution x
(eXecute).
Ces droits – définis pour les entités u, g et o – apparaissent dans l'ordre r, suivi
de w, lui-même suivi de x avec la commande ls -l. Lorsque l'un de ces
caractères est remplacé par un tiret, cela signifie que le droit associé n'est pas
autorisé.
Droits d'accès aux fichiers 161
Chapitre 7

Dans l'exemple du paragraphe précédent, l'utilisateur willy qui a les droits


rw- :
– a le droit de lire le fichier notes.
– a le droit de modifier le fichier notes.
– n'a pas le droit d'exécuter le fichier notes.
De façon plus précise, on distingue les droits Unix standards selon le type de
fichier : fichier ordinaire ou répertoire.

Droit Fichier Répertoire


r Autorisation de lire le contenu du Autorisation de lister les entrées
fichier. du répertoire.
w Autorisation de modifier le Autorisation de modifier les
contenu du fichier. entrées du répertoire.
x Autorisation d'exécuter le fichier. Autorisation d'accéder aux
entrées du répertoire.

S'il est relativement simple de retenir les autorisations correspondantes


lorsque ces droits sont positionnés pour un fichier ordinaire, cela devient
moins évident pour un répertoire.
En considérant les répertoires comme des tableaux contenant, dans une
colonne les inodes et dans une autre les noms des fichiers présents dans le
répertoire, il est plus facile d'appréhender les droits standards :
Édition de fichiers texte - Vi
énoncé Chapitre 4

Chapitre 4
Édition de fichiers texte - Vi

Durée : 1 heure 30
Linux

Mots-clés
Éditeur, texte, vi, vim.
Objectif
À l'issue de ce chapitre, vous serez en mesure d'éditer des fichiers texte à l'aide de l'éditeur Vim
disponible sous Linux.
Ces exercices correspondent au chapitre 6 "Édition de fichiers texte - Vi" du livre "Linux - Prin-
cipes de base de l'utilisation du système 6e édition" dans la collection Ressources Informa-
tiques aux Éditions ENI.
Matériel à prévoir
Ces exercices peuvent être réalisés sur n'importe quelle distribution Linux où le lecteur possède
un compte utilisateur valide ; le compte utilisateur tux est utilisé en correction des énoncés.

Prérequis
Pour valider les prérequis nécessaires, avant d'aborder le TP, répondez aux questions ci-
après :

1. Sous quels systèmes d'exploitation peut-on utiliser Vi ?


a. Sous GNU/Linux.
b. Sous tout système Unix.
c. Sous les systèmes Microsoft Windows.
d. Sous Mac OS.
e. Sous tous les systèmes d'exploitation énoncés précédemment et d'autres encore.
2. Est-ce que Vim possède les mêmes fonctionnalités que Vi ?
a. Oui.
b. Non.
3. Quels sont les trois modes de fonctionnement de Vi ?

31
Linux - Entraînez-vous sur les commandes de base
Les TP Informatiques

4. Quelle est la séquence de touches permettant de sortir de Vi à tout moment sans sauve-
garder les modifications apportées au fichier ?
a. :q, puis [Entr]
b. :q!, puis [Entr]
c. [Echap], puis :q, puis [Entr]
d. [Echap], puis :q!, puis [Entr]

Corrigé p. 107

Énoncé 4.1 Lancement et sortie de Vi


Durée estimative : 2 minutes

1. Connectez-vous sur la troisième console virtuelle texte (tty3) en tant qu'utilisateur tux.
2. Lancez l'éditeur de texte Vi sans argument. Que voyez-vous ?
3. Sortez de Vi.
4. Éditez maintenant le fichier /etc/hosts. Que signifient les caractères ~ placés en
début de ligne ?
5. Sortez de Vi.

Indice pour l'énoncé 4.1


2. Tout au long de ces exercices, vous pouvez utiliser indifféremment la commande vi ou
la commande vim.

Corrigé p. 108

Énoncé 4.2 Commandes de déplacement


Durée estimative : 10 minutes

1. Éditez le fichier /etc/services.


2. Sans utiliser le pavé directionnel du clavier (flèches), déplacez le curseur d'une ligne vers
le bas.
3. Sans utiliser le pavé directionnel du clavier, déplacez le curseur de douze lignes vers le
bas.
4. Sans utiliser le pavé directionnel du clavier, déplacez le curseur de huit lignes vers le haut.
5. Sans utiliser le pavé directionnel du clavier, déplacez le curseur de seize caractères vers
la droite.

32
Édition de fichiers texte - Vi
énoncé Chapitre 4

6. Sans utiliser le pavé directionnel du clavier, déplacez le curseur de neuf caractères vers la
gauche.
7. Déplacez le curseur en fin de ligne.
8. Déplacez le curseur en début de ligne.
9. Déplacez plusieurs fois le curseur sur le premier caractère du mot suivant.
10. Déplacez plusieurs fois le curseur sur le premier caractère du mot précédent.
11. Déplacez plusieurs fois le curseur sur le dernier caractère du mot suivant.
12. Déplacez le curseur sur la dernière ligne du fichier.
13. Déplacez le curseur sur la première ligne du fichier.
14. Déplacez le curseur sur la 45ème ligne du fichier.
15. Déplacez le curseur d'une page vers le haut.
16. Déplacez le curseur d'une page vers le bas.

Corrigé p. 111

Énoncé 4.3 Commandes d'édition et de correction


Durée estimative : 15 minutes

1. Déplacez le curseur sur le sixième caractère de la première ligne du fichier.


2. Insérez la chaîne de caractères "un" avant le curseur sur la ligne.
3. Sans utiliser le pavé directionnel du clavier, déplacez-vous de trois caractères vers la
droite et insérez la chaîne de caractères "deux" après le curseur.
4. Insérez la chaîne de caractères "trois" en début de ligne.
5. Insérez la chaîne de caractères "quatre" en fin de ligne.
6. Sans utiliser le pavé directionnel du clavier, déplacez le curseur de six caractères vers la
gauche.
7. Supprimez le caractère sous le curseur.
8. Supprimez le caractère situé avant le curseur.
9. Supprimez les cinq caractères précédant le curseur.
10. Effacez tous les caractères se trouvant du curseur à la fin de la ligne.
11. Sans utiliser le pavé directionnel du clavier, déplacez le curseur de six caractères vers la
gauche.
12. Effacez tous les caractères se trouvant du début de la ligne au curseur.
13. Collez en fin de ligne le texte que vous venez de "couper".

33
Linux - Entraînez-vous sur les commandes de base
Les TP Informatiques

14. Effacez la totalité de la ligne.


15. Copiez la dernière ligne du fichier et collez-la en début de fichier.
16. Annulez la dernière commande. Est-ce possible d'annuler aussi les commandes précé-
dentes ?
17. Effacez les quatre premières lignes du fichier.
18. Effacez les quatre lignes suivantes.

Indices pour l'énoncé 4.3


2. Vous devez entrer dans le mode "édition" de Vi.
3. N'oubliez pas de retourner en mode "commandes" avant de déplacer le curseur, puis
entrez de nouveau en mode "édition".
4. Utilisez la commande qui permet de passer en mode "édition" en insérant directement
en début de ligne.
5. Utilisez la commande qui permet de passer en mode "édition" en insérant directement
en fin de ligne.
10. Utilisez la commande d'effacement suivie de la commande de déplacement adéquate.
12. Utilisez la commande d'effacement suivie de la commande de déplacement adéquate.
18. Utilisez la commande de répétition.

Corrigé p. 112

Énoncé 4.4 Commandes globales


Durée estimative : 10 minutes

1. Essayez d'enregistrer les modifications que vous avez apportées au fichier. Est-ce
possible ?
2. Enregistrez le travail dans votre répertoire personnel sous le nom de fichier services2.
3. Supprimez la première ligne du fichier, puis enregistrez et quittez Vi.
4. Ouvrez de nouveau le fichier /etc/services et recherchez la chaîne de caractères
"tcp".
5. Déplacez le curseur d'occurrence en occurrence de la chaîne de caractères "tcp".
6. Déplacez toujours le curseur d'occurrence en occurrence de la chaîne de caractères "tcp",
mais cette fois, dans le sens inverse de la recherche.
7. Remplacez toutes les chaînes de caractères "udp" du fichier par "UDP".

34
Édition de fichiers texte - Vi
énoncé Chapitre 4

Indice pour l'énoncé 4.4


2. Utilisez un chemin personnel pour spécifier le nouveau nom de fichier.

Corrigé p. 113

Énoncé 4.5 Options de l'éditeur


Durée estimative : 10 minutes

1. Affichez toutes les options de l'éditeur.


2. Affichez les numéros de lignes.
3. Définissez le nombre d'espaces à 2 pour représenter une tabulation.
4. Sortez de Vi sans enregistrer et ouvrez de nouveau le fichier /etc/services.
5. Les options sont-elles toujours effectives ? Comment faire pour que ces modifications
soient permanentes ?

Indices pour l'énoncé 4.5


2. Activez l'option adéquate.
3. Modifiez la valeur de l'option adéquate.

Corrigé p. 114

Énoncé 4.6 Pour aller plus loin


Durée estimative : 40 minutes

1. Si la commande est présente sur votre système, lancez vimtutor et suivez les exercices
proposés.
2. Trouvez et consultez la documentation existante qui traite de l'éditeur de texte Vim.
3. Trouvez et utilisez d'autres éditeurs texte de votre distribution GNU/Linux.

Indice pour l'énoncé 4.6

2. La documentation Linux a été abordée dans le chapitre Documentation de cet ouvrage.

Corrigé p. 115

35
Linux - Entraînez-vous sur les commandes de base
Les TP Informatiques

36

Vous aimerez peut-être aussi