Vous êtes sur la page 1sur 14

Module 09 Systèmes d’exploitation récents Daniel Cyr

Les extensions

Le système Linux ne gère pas d’extension. Ce sont donc des conventions de


nommage liées à un service ou un logiciel. Il est parfois obligatoire de respecter
la convention, par exemple pour les sources du langage C. Les caractères
utilisés pour l’extention sont compris dans les 14 ou 255 caractères du nom. Les
extensions les plus connues sont les suivantes :

Extension Fichier
.c Fichier source du langage C
.sh Un script shell
.awk Un script écrit avec awk
.gz ou .z Un fichier compressé au format ZIP, par gzip
.Z Un fichier compressé par compress
.bz2 Un fichier compressé par bzip2
.icon Un fichier Image
.xbm
.xpm .gif
.jpg ou .jpeg
.pdf Un fichier Acrobat
.txt Un fichier texte
.html ou .htm Un fichier HTML (une page Web), visualisée par lynx ou netscape
.ps Un fichier au format postscript, visualisable par ghostscript
.pl ou .pm Une bibliothèque (un paquetage) PERL. Un script PERL.
.java Un fichier source JAVA
.class Un fichier compilé JAVA
.tar Un fichier archive TAR
.taz ou .tz Un fichier TAR compressé
.tgz ou .tar.gz Un fichier TAR compressé par gzip.
.deb Un paquetage Debian
.rpm Un paquetage RedHat

Protection des fichiers

Le propriétaire est l'utilisateur ayant créé le fichier. Pour permettre le partage de


fichiers, Linux définit la notion de groupe d'utilisateurs, et tout utilisateur
appartient à un groupe au moins. Les droits d'accès (permissions) à un fichier
sont définis par son propriétaire.

DROIT D'ACCÈS AUX FICHIERS

A chaque fichier est associé un ensemble d'indicateurs précisant les droits


d'accès au fichier.

Pour chaque fichier il existe trois types d'utilisateurs


• le propriétaire du fichier,
• a les membres du groupe propriétaire du fichier
• les autres utilisateurs du système.
Module 09 Systèmes d’exploitation récents Daniel Cyr

Pour chaque fichier et par type d'utilisateur il existe trois modes principaux
• autorisation d'écriture (w)
• autorisation de lecture (r)
• autorisation d'exécution (x)

En plus de ces neuf bits (rwx rwx rwx), Unix/Linux définit trois autres bits de
permission : SUID, SGID, t que nous présenterons plus loin. Sous Linux il existe
différents types de fichiers

• fichier ordinaire (- )
• fichier répertoire (d)
• fichier spécial : périphérique accédé en mode caractère (c)
• fichier spécial : périphérique accédé en mode bloc (b)
• tube nommé (named pipe) (p)
• lien symbolique ( l)
• socket (s)
Module 09 Systèmes d’exploitation récents Daniel Cyr

Fichier Symbole Création Destruction


(ls –l)
Ordinaire (régulier) - vi, … rm

Les fichiers de données et les programmes.

Répertoire d mkdir rmdir, rm –r

Un fichier qui permet l’accès à d’autres fichiers.

Périphérique caractère c mknod rm

Les périphériques où l’unité d’échange est le caractère, typiquement les liaisons séries.

Périphérique bloc b mknod rm

Les périphériques qui échangent des blocs, typiquement des disques

Socket locale s socket(2) rm

Le terme socket désigne un mécanisme d’échange d’information entre tâches locales ou


distantes (en réseau) implémenté dans le noyau Linux. Une socket locale est un fichier spécial
qui possède un nom dans l’arborescence. Ce n’est pas le cas des sockets distantes. Les
sockets locales sont utilisées par le système graphique X-Windows.

Tube nommé p mknod rm

Un tube nommé est un mécanisme d’échange d’informations entre tâches qui s’exécutent
localement. Un tube nommé est un fichier spécial qui possède un nom dans l’arborescence.
Les tubes nommés sont encore appelés FIFO (First In First Out). Ils ont souvent utilisés par des
services tels que les services d’impression.

Lien symbolique l ln –s rm

Un lien symbolique est un fichier spécial qui définit un chaînage sur un autre fichier. Les liens
symboliques permettent de conserver une compatibilité avec d’anciennes versions de
l’arborescence du système linux ou d’un logiciel.

Ainsi, à chaque fichier Linux sont associés 10 attributs (1 pour désigner le type,
et 9 attributs de protection, 3 pour le propriétaire, 3 pour le groupe et 3 pour les
autres utilisateurs). L'ensemble des renseignements sur un fichier est obtenu en
utilisant la commande ls -l
Module 09 Systèmes d’exploitation récents Daniel Cyr

Exemple

elso> ls -l /etc/passwd

- rw- r-- r-- 1 root bin 2055 Jul 28 18:03 /etc/passwd

• permission des autres


• permission du groupe
• permission du propriétaire
• type du fichier

La chaîne -rw- r-- r-- représente les protections du fichier /etc/passwd'.

1. Type de fichier
2. droits d'accès du propriétaire
3. ceux du groupe
4. autres utilisateurs
5. nombre de liens sur ce fichier
6. Utilisateur (propriétaire)
7. groupe propriétaire
8. Taille du fichier en octets
9. Date et heure de la dernière modification
10. Nom fichier

Voici deux exemples de protection des fichiers

crw- rw- r-- Fichier spécial caractère : lecture et écriture pour le


propriétaire et pour le groupe, et lecture pour les autres (par
exemple les terminaux).

-rwx r-x r-- Fichier ordinaire : lecture, écriture et exécution permises pour
le propriétaire, lecture et exécution pour le groupe et
seulement lecture pour les autres. Il est donc impossible aux
membres du groupe et aux autres utilisateurs d'écrire dans
ce fichier.
Module 09 Systèmes d’exploitation récents Daniel Cyr

Modification des droits d’accès aux fichiers

La protection d’un fichier ne peut être modifié que par le propriétaire à l’aide de la
commande chmod (CHange MODe). Il existe deux modes d’utilisation de la
commande.

La description des protections par un nombre octal

Ex :
rwx rw- r-x est représenté par le nombre octal 765. Une lettre
équivaut à 1, un tiret à 0.
Alors, rwx rw- r-x = 111 110 101 = 765

Ex : pour modifier la protection du fichier patate

elso> chmod 567 patate


elso> ls –l patate
-r-xrw-rwx 1 elso staff 55 Jul 20 17:01 patate
elso>

Description absolue ou relative des droits d’accès

chmod [who]op[permission] fichier

who est une combinaison de lettre u (user=propriétaire), g (groupe), o


(other=autre) ou a (all=tous) pour ugo.

op + permet d’ajouter un droit d’accès, - de supprimer un droit d’accès et =


d’affecter un droit d’accès absolu (tous les autres bits sont remis a zéro)

permission = rwx

Ex :

chmod u-w fichier supprime le droit d’écriture a l’utilisateur


chmod g+r fichier ajoute le droit en lecture pour le groupe
chmod ug=x fichier accès uniquement en exécution pour le
propriétaire et le groupe, pas de modification
pour les autres
Module 09 Systèmes d’exploitation récents Daniel Cyr

Droit d'accès à la création du fichier


La protection d'un fichier, ainsi que le nom du propriétaire (le vôtre) et le nom du
groupe auquel vous appartenez, sont établis à sa création et ne peuvent être
modifiés que par son propriétaire.
La commande umask permet de définir un masque de protection des fichiers (et
répertoires) lors de leur création. Cette commande se trouve en général dans le
fichier . bashrc, mais elle peut être exécutée à tout moment. Le masque est
exprimé en base 8.

Exemples

|elso> umask 022


La valeur 022 est soustraite de la permission permanente (111 111 111)
111 111 111 <= permission permanente
000 010 010 <= on enlève les bits dont on ne veut pas
111 101 101 => 755

umask 022 permet de créer des fichiers répertoires dont la protection est
rwx r-x r-x. C'est souvent l'option par défaut.

Attention
Pour les fichiers ordinaires, umask 022 donnera une protection de type
rw- r-- r-- , car la possibilité d'exécution n'est pas autorisée sur les
fichiers ordinaires.

Voici donc ce qui se passe après avoir lancé umask 022


elso> touch f1
elso> ls -l f1
-rw- r-- r-- 1 elso staff 40 jan 15 16:04 f1
elso>

Exemple
Commande conseillée pour la sécurité. La protection d'un fichier est rwx r-x --x.
| elso> umask 026
Module 09 Systèmes d’exploitation récents Daniel Cyr

DROIT D'ACCÈS AUX RÉPERTOIRES

Dans le cas des répertoires, l'interprétation des droits est légèrement différente
de celle concernant les fichiers. Les informations concernant un répertoire sont
obtenues par la commande ls –ld rept.

Exemple
elso> ls -dl bin
drwx r-x r-x 3 elso staff 1024 Jul 28 18:04 bin
elso>

L'interprétation des protections pour les répertoires est la suivante


r autorise la lecture du contenu du répertoire comme dans le cas des
fichiers; permet donc de voir la liste des fichiers qui sont dans le répertoire.

x autorise l'accès au répertoire (à l'aide de la commande cd).

w autorise la création, la suppression et le changement du nom d'un


élément du répertoire. Cette permission est indépendante de l'accès aux
fichiers dans le répertoire.

Exemples
Soit un fichier f1 dans le répertoire elso1.
1) Le répertoire elso1 appartenant à l'utilisateur elso1 a les protections
suivantes:
| drwx --- ---

Le fichier f1 de elsol a les protections suivantes


| -rwx --- ---

Seul l'utilisateur elso1 pourra modifier et supprimer son fichier f1.

2) Le répertoire elso1 appartenant à l'utilisateur elso1 a les protections


suivantes
| dr-x --- ---

Le fichier f1 de elso1 a les protections suivantes


| -rwx --- ---

Seul l'utilisateur elso1 pourra modifier son fichier f1 mais il ne pourra pas le
supprimer. En effet le propriétaire du répertoire elso1 (l'utilisateur elso1) n'a
pas l'autorisation w (autorisation de création, suppression, modification du nom
d'un élément du répertoire).
Module 09 Systèmes d’exploitation récents Daniel Cyr

La permission de supprimer et le bit t


La possibilité de suppression d’un fichier n'est donc pas fixée dans les
permissions de ce fichier, mais dans les permissions du répertoire qui le contient.
Ce n'est donc pas une permission fixée fichier par fichier. Cela pose problème,
en particulier dans le répertoire /tmp : tout utilisateur doit pouvoir créer des fichiers
dans /tmp, qui a donc les permissions rwx pour other. Chacun peut donc lire et
écrire dans /tmp, et donc y créer des fichiers. Mais chacun pourrait aussi
supprimer tout fichier dans /tmp, y compris des fichiers créés par d'autres
utilisateurs ! D'où l'utilité du bit t sur un répertoire : si ce bit est positionné, un
utilisateur qui peut écrire dans le répertoire peut y créer des fichiers, mais ne
peut supprimer un fichier que s'il en est propriétaire. Le bit t apparaît à la place
du bit x de other dans la commande ls –l
elso> ls -ld /tmp
drwxrwxrwt 11 root root 3072 May 11 15:09 /tmp

MODIFICATION DU PROPRIÉTAIRE ET DU GROUPE


La commande chown permet de changer le propriétaire d'un fichier. Pour des
raisons de sécurité, seul l'administrateur peut modifier le propriétaire d'un fichier
ou d'un répertoire. Cet utilisateur privilégié, appelé root, peut accéder à tous les
fichiers et répertoires sans aucune restriction et peut en modifier tous les attributs
(nom, propriétaire, groupe propriétaire, permissions, dates). Il existe toujours
dans tous système Unix/Linux.
La commande chgrp permet le changement de groupe pour les fichiers ou
répertoires cités, à condition que l'utilisateur fasse partie du nouveau groupe et
soit propriétaire de ces fichiers ou répertoires.
Exemple
elso> chgrp info f1
§ possible si j'appartiens au groupe info
elso> chown dagnel f1
chown: fl: Operation not permitted
§possible seulement pour root

Le fichier f1 appartiendra à dagnel et au groupe in fo .


Une commande équivalente (utilisable seulement par root) serait
| root> chown dagnel.info f1

APPARTENANCE À PLUSIEURS GROUPES


Lors de l'entrée en session, un utilisateur appartient à son groupe de
rattachement principal : celui défini dans le fichier le etc/passwd. Cet utilisateur
peut toutefois être membre d'autres groupes, tel que cela est défini dans le fichier
/etc/group. BSD et System V diffèrent sur les points suivants
Module 09 Systèmes d’exploitation récents Daniel Cyr

Linux, comme d'autres versions d'Unix, réalise une synthèse entre deux
comportements de Unix de deux souches différentes :
• Les permissions de groupe d'un fichier (ou d'un répertoire) sont
applicables à tout utilisateur membre du groupe propriétaire du fichier.
• Tout fichier nouvellement créé a pour groupe propriétaire le groupe effectif
de l'utilisateur qui le crée si le répertoire qui le contient n'est pas SGID.
• Tout fichier nouvellement créé a pour groupe propriétaire le groupe auquel
appartient le répertoire dans lequel il est créé si ce répertoire est SGID.

Le choix peut donc être fixé répertoire par répertoire par positionnement du bit
SGID sur le répertoire. Ceci est réalisé par les commandes :
chmod g+s repertoire § met le bit SGID
chmod g-s repertoire § supprime le bit SGID

Si un répertoire est SGID, tout sous-répertoire créé ultérieurement héritera du bit


SGID. Ce comportement est très adapté au travail en groupe

Exemple
L'utilisateur elso fait partie du groupe staff et également du groupe réseau. Son
groupe principal est staff. Voyons ce qui se passe dans un répertoire non SGID
elso> umask 002
elso> ls -ld projet1
drwx rwx r-x elso staff 24 jan 22 10:00 projet1

§ le répertoire projet1 n'est pas SGID


elso> cd projet1
elso> ls -l bonjour

-rwx r-- --- pierre reseau 25 fev 10 10:25 bonjour


elso> cat bonjour § elso fait partie du groupe reseau
Hello § il peut donc lire le contenu
Comment vas-tu? § du fichier bonjour
elso> touch prog2.c
elso> ls -1 prog2.c
-rw- rw- r-- elso staff 02 fev 10 15:02 prog2.c
§ Le fichier prog2.c appartient au groupe staff
§ et non pas au groupe réseau.
Module 09 Systèmes d’exploitation récents Daniel Cyr

Les autres membres du groupe réseau n'ont pas la permission de modifier le


fichier prog2.c : nous ne sommes pas dans une logique de travail en groupe
pour le groupe réseau. Voyons maintenant ce qui se passe dans un répertoire
SGID
elso> umask 002
elso> ls -ld projet2
drwx rws r-x elso reseau 24 jan 22 10:0 projet2
§ le répertoire projet2 est SGID
elso> cd projet2
elso> touch prog2.c
elso> ls -l prog2.c
-rwx rwx r-- elso reseau 02 fev 10 15:02 prog2.c
§ Le fichier prog2. c appartient au groupe reseau.

Dans ce dernier cas, tous les membres du groupe réseau pourront modifier tout
fichier créé dans ce répertoire. Le travail en groupe est très simplifié. Une discus-
sion beaucoup plus détaillée et très intéressante sur cette logique est
disponible (en anglais) dans l'aide en ligne au format HTML, par exemple pour la
distibution Red Hat dans :

Red Hat Linux Reference Guide


System Related Reference
System Administration
Users, Groups and User-Private Groups
Module 09 Systèmes d’exploitation récents Daniel Cyr

EXERCICES

1. En utilisant les commandes m k d i r , e c h o et cat, créez dans un


nouveau répertoire le fichier "bienvenue" contenant la ligne de
commande :
echo Bienvenue dans le monde Linux.
Exécutez ce fichier.

2. En utilisant les commandes mkdir, echo, cp, chmod, et cat,


créez un fichier que vous pouvez lire, modifier et supprimer.

3. En utilisant les commandes mkdir, echo, cp, chmod, cat, créez


un fichier que vous pouvez lire et supprimer mais que vous ne pouvez
modifier.
Module 09 Systèmes d’exploitation récents Daniel Cyr

4. En utilisant les commandes mkdir, echo, cp, chmod, cat, créez


un fichier que vous pouvez lire mais que vous ne pouvez ni modifier, ni
supprimer.

5. Dans quel cas les permissions d'un fichier à sa création sont-elles


différentes des permissions fixées par umask ?

6. Si vous pouvez travailler avec un collègue appartenant au même groupe


que vous, modifiez les permissions du fichier créé à l'exercice
"Bienvenue" ci-dessus de telle façon que votre collègue puisse le lire et
l'exécuter, mais ne puisse pas le modifier ni le supprimer.
Pouvez-vous modifier les permissions de ce fichier de telle sorte que votre
collègue puisse le lire, le modifier et l'exécuter alors que vous-même ne
pouvez pas le modifier ?
Module 09 Systèmes d’exploitation récents Daniel Cyr

7. Comment est attribuée la permission d'effacer un fichier ? Créez un fichier


que votre collègue peut modifier mais pas supprimer et un autre qu'il peut
supprimer mais pas modifier. Est-il logique de pouvoir attribuer de tels
droits ? Quelles sont les conséquences pratiques de cette expérience ?

8. Affichez tous les noms et les attributs de tous les fichiers de votre
répertoire

9. Copiez dans votre répertoire tous les fichiers du répertoire /etc/ dont le
nom commence par g.

10. Renommez l’un de ces fichiers en fichier.old. Prenez un second fichier et


recommencez l’opération en utilisant à nouveau le nom fichier.old comme
second argument. Que constatez vous ?
Module 09 Systèmes d’exploitation récents Daniel Cyr

11. Recherchez les répertoires du nom de cron sur votre système

12. Créez l’arborescence suivante.

Rep1
|---fich11
|---fich12
|---rep2
| |---fich21
| |---fich22
|---rep3
| |---fich31
| |---fich32

Quel est le contenu des fichiers débutant par fichXX ?

Configurez les permissions afin que tous les usagers du système aient accès à
tous les répertoires de cette arborescence. Quelle commande avez-vous
utilisé ? (une seule)

Quel problème cela cause au niveau des fichiers ?

Comment faire pour y remédier ?

Vous aimerez peut-être aussi