Vous êtes sur la page 1sur 8

S. Lavirotte, D. Lopez, H.

Renard
PolytechNice Sophia
PeiP 1
2014-2015

TD sances n 6
Gestion avance de Fichiers sous Unix

Ce TP est destin vous familiariser avec les droits d'accs et les liens sous l'environnement Unix.

1 Droits daccs
Comme nous l'avons vu prcdemment, les systmes Unix sont multi utilisateurs, ceci implique que plusieurs utilisateurs peuvent utiliser la mme machine et les mmes ressources. Pour maintenir la bonne scurit de ces ressources les systmes linux proposent un systme de permissions sur les fichiers. chaque fichier est associ un
ensemble d'informations permettant d'identifier qui est le propritaire du fichier mais aussi sa taille ou encore les
droits d'accs qui lui sont associs. Pour consulter ces informations, on utilise la commande ls -l.
Voici un exemple de rsultat d'une commande ls -l
-rwxrwxrwx 1 kernel users 3.8M jan 2 2014 /mnt/multimedia/test.mp3

Les droits d'accs du fichier /mnt/multimedia/test.mp3 sont les suivants : -rwxrwxrwx.


Le premier caractre indique le type de fichier.
- dcrit un fichier ordinaire
d dcrit un rpertoire
l dcrit un lien symbolique
Les caractres suivant indiquent les droits d'accs associs ce fichier. Il existe trois types de droit d'accs :
l'accs en lecture (r) : pour autoriser la lecture du fichier ou la visualisation du contenu d'un rpertoire.
l'accs en criture (w) : pour autoriser modifier un fichier ou le contenu d'un rpertoire
le droit d'excution (x) : pour autoriser l'excution d'un fichier. Attention le droit d'excution x sans le
droit de lecture r est autoris mais ne vaut rien. Il faut pouvoir lire un fichier pour l'excuter. x sur un
rpertoire rend ce dernier traversant, c'est--dire que l'on va pouvoir accder aux rpertoires qu'il contient.
Vous ne pouvez pas renommer, supprimer ou copier des fichiers dans un rpertoire si vous n'avez pas accs en
criture ce rpertoire.
Si vous avez accs en criture un rpertoire, vous POUVEZ supprimer un fichier mme si vous ne disposez pas de
droits d'criture pour ce fichier (un rpertoire est en fait juste un fichier dcrivant une liste de fichiers, donc si vous
avez accs en criture sur le rpertoire, vous pouvez modifier les liste des fichiers quil contient). Cela permet
mme de modifier un fichier (le supprimer et le recrer) mme protg en criture.
Ces trois types de droits d'accs sont ensuite rpartis sur trois niveaux :
utilisateur (u) : pour le propritaire du fichier
groupe (g) : pour les membres du groupe associ
autres (o) : pour tous les autres (groupes et propritaire exclus)
Voici comment sont organises les permissions des fichiers :

PolytechNice Sophia / Universit de Nice Sophia Antipolis


930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France
Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

1
1

S. Lavirotte, D. Lopez, H. Renard


PolytechNice Sophia
PeiP 1
2014-2015

TD sances n 6
Gestion avance de Fichiers sous Unix
Voici d'autres exemples :
-rw-r--r--

Lisible et modifiable pour le propritaire, seulement lisible pour les autres.

-rw-r----

Lisible et modifiable pour le propritaire, seulement lisible pour les utilisateurs appartenant au
groupe du fichier.

drwx------

Rpertoire seulement accessible par son propritaire

-------r-x

Fichier excutable seulement par les autres, mais ni par votre groupe ni par vous-mme. Droits d'accs typique d'un pige !

La commande chmod permet de modifier les droits d'accs un fichier. Un utilisateur peut seulement modifier les
droits de ses fichiers (sauf le super-utilisateur qui peut tout faire sur la machine). La commande chmod respecte la
syntaxe suivante :
$ chmod permissions fichiers ou dossier

L'option -R permet d'appliquer la commande chmod rcursivement (sur tout ce qui est contenu dans le rpertoire
cible y compris les sous-rpertoires).
Il existe deux formats de permissions possibles : symbolique ou en base 8.
En base 2, les droits d'accs de chaque niveaux ont pour valeur 0 ou 1. Ainsi par exemple, rwxr-x--- peut tre
traduit en 111 101 000 en binaire, qui en base 8 peut tre converti en 750. Pour mettre de telles permissions un
fichier, on crira la commande : chmod 750 fichier.
En format symbolique, on dcrit les permissions pour chaque niveau. Ce format est plus simple comprendre
avec des exemples. En voici quelques-uns :

chmod a+rw : on ajoute le droit pour tous de lire et dcrire

chmod u+x : on ajoute pour lutilisateur le droit dexcuter

chmod g-w : on retire pour le groupe le droit dcrire

chmod o-rwx : on retire pour les autres le droit de lire, crire et excuter

chmod 644 : on donne le droit de lecteur et dcriture lutilisateur, le droit de lecture au groupe et aux

autres

2 Liens physiques et liens symboliques


Un fichier stock sur le disque dur est un ensemble de donnes qui sont enregistres. Il faut ensuite un moyen
d'accder ces donnes. C'est le rle que joue alors le nom du fichier qui permet d'indiquer quelles donnes on
fait rfrence.

2.1 Lien physique : ln


Lors de la cration d'un fichier, on lui associe traditionnellement un seul nom. Mais en fait il peut y en avoir plusieurs. Chacun de ces noms de fichier est appel lien physique vers celui-ci. Il faut voir cela comme un point d'accs vers les donnes se trouvant dans l'arborescence.
Lors de l'utilisation de la commande ls avec l'option -l, on peut voir le nombre de ces liens physiques.
$ touch find

PolytechNice Sophia / Universit de Nice Sophia Antipolis


930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France
Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

2
2

S. Lavirotte, D. Lopez, H. Renard


PolytechNice Sophia
PeiP 1
2014-2015

TD sances n 6
Gestion avance de Fichiers sous Unix
$ ls -l find
-rwxr-xr-- 1 user user 0 sept. 12 2014 find

C'est la deuxime colonne qui l'indique. On l'appelle compteur de rfrence. Ici on sait donc qu'il y a une seule
rfrence existant vers le contenu de ce fichier, celui-ci s'appelant find. C'est le cas le plus courant. On peut rajouter un lien physique l'aide de la commande ln . On lui passe en paramtre un des liens physiques dj existant
suivi par le nom du nouveau lien crer. On pourrait par exemple ajouter un lien physique du nom de search. Cet
exemple montre aussi le rsultat ensuite.
$ ln find search (il faut tre super utilisateur pour avoir lautorisation dans ce cas : ajouter sudo devant cette

commande pour avoir les droits du super utilisateur, nous verrons cela un peu plus tard)
$ ls -l find
-rwxr-xr-- 2 user user 0 sept. 12 2014 find
$ ls -l search
-rwxr-xr-- 2 user user 0 sept. 12 2014 search

Le nombre de liens physiques est alors pass 2. Il faut bien voir que tous les liens physiques sont strictement
quivalents. Lors de la suppression d'un de ces liens ( l'aide de la commande rm), le compteur de rfrence est
dcrment.
$ rm find
$ ls -l
-rwxr-xr-- 1 user user 0 sept. 12 2014 search

S'il est diffrent de 0, rien n'est fait au niveau du fichier. La suppression du fichier ne sera effective que lorsque le
dernier lien physique vers celui-ci sera supprim (compteur = 0). Etant donn que gnralement on ne cre des
fichiers qu'avec un seul lien physique, la suppression de celui-ci avec rm est quivalente la suppression du fichier.

2.2 Lien symbolique : ln -s


Il existe un autre type de lien, les liens symboliques. Ce sont eux qui s'approchent le plus de la notion intuitive de
lien.
Un lien symbolique est en fait un type de fichier spcial qui contient le chemin vers un fichier du disque (en ralit
un de ses liens physiques). On les cre aussi avec la commande ln mais en utilisant l'option -s (c'est ce qui se rapproche des raccourcis sous Windows). Voici un exemple pour illustrer cela. On suppose que le lien physique cr
prcdemment a t supprim.
$ ln -s search cherche
$ ls -l search
-rwxr-xr-- 1 user user 0 sept. 12 2014 search
$ ls -l cherche
lrwxrwxrwx 1 Tian users 6 sept. 21 2014 cherche -> search

La premire chose observer est le fait que le compteur de rfrence de search n'a pas t modifi. Un fichier n'a
absolument pas connaissance du nombre de liens symboliques pointant vers lui.

PolytechNice Sophia / Universit de Nice Sophia Antipolis


930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France
Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

3
3

S. Lavirotte, D. Lopez, H. Renard


PolytechNice Sophia
PeiP 1
2014-2015

TD sances n 6
Gestion avance de Fichiers sous Unix

Dans les permissions du lien appel cherche, on peut voir tout d'abord la lettre l indiquant qu'il s'agit bien d'un
type particulier de fichier, un lien symbolique. On remarquera galement que toutes les permissions sont prsentes. Ceci car ce sont en fait celles du fichier destination qui seront utilises pour vrifier les autorisations d'accs.
Et enfin on a l'indication de la cible du lien symbolique. Lors de la cration, on aurait pu utiliser une indication de
chemin. Celle-ci aurait t conserve telle quelle dans le lien symbolique y compris si le chemin tait donn de
manire relative.
L'utilisation ensuite du lien symbolique sera quivalente celle du fichier cible pour les commandes l'utilisant.
Si ce dernier point fait apparatre les deux types de liens comme trs proches, il reste des diffrences.
Le lien symbolique est totalement indpendant du fichier lui-mme et aussi du lien physique auquel il fait rfrence. On peut crer un lien symbolique en indiquant un chemin de fichier n'existant pas. Le fichier peut aussi tre
supprim ensuite sans que le lien symbolique n'en soit inform. Toutefois les accs futurs au fichier au travers de
ce lien renverront bien sr une erreur. Et enfin la suppression d'un lien symbolique ( l'aide galement de la commande rm) n'aura aucune consquence sur le fichier.

2.3 I-nuds
Un systme UNIX n'identifie pas un fichier par son nom. En effet, ce n'est pas commode manipuler et comme on
l'a vu avec les liens, deux fichiers de noms diffrents priori peuvent correspondre au mme bloc mmoire .
Dans un systme UNIX, un fichier quel que soit son type, est en fait identifi par un numro appel numro d'inud ( inode en anglais). Le lien entre le numro d'i-nud attribu par le systme et le nom attribu par l'utilisateur se situe en ralit dans le contenu du rpertoire dans lequel se trouve le fichier.

3 Utilisation avance de linterprte de commande


3.1 Alias
Pour ceux qui sont habitus l'utilisation de cd pour changer de rpertoire mais souhaiteraient bnficier de ce
comportement, il suffit de dfinir un alias :
(Un alias est une primitive de nombreux shells informatiques qui permet d'afficher ou d'initialiser les substitutions de
noms de commandes. Elle est majoritairement employe pour abrger une commande ou rajouter par dfaut des options une commande rgulirement utilise.)
$ alias cd="pushd"
PolytechNice Sophia / Universit de Nice Sophia Antipolis
930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France
Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

4
4

S. Lavirotte, D. Lopez, H. Renard


PolytechNice Sophia
PeiP 1
2014-2015

TD sances n 6
Gestion avance de Fichiers sous Unix

Un changement de rpertoire en utilisant cd sauvegardera alors le rpertoire quitt. popd permettra ensuite de
remonter l'historique des rpertoires visits.
unalias supprime de faon dfinitive les alias crs avec la commande alias si jamais vous avez des alias dans le
fichier d'initialisation de shell (.bashrc par exemple, alors il faut supprimer la ligne correspondant l'alias pour
supprimer dfinitif l'alias sinon l'alias ne sera supprim que pour la session en cours).
1. J'affiche les alias (ce que j'ai dans .bashrc)
$ alias
alias dem='/bin/ls'
alias vi='/usr/bin/vim'
2. Je cre un alias en ligne de commande
$ alias ll='ls -l'
3. J'affiche les alias (.bashrc + le nouveau cr)
$ alias
alias dem='/bin/ls'
alias ll='ls -l'
alias vi='/usr/bin/vim'
4. Les alias se trouvant dans .bashrc
$ grep alias .bashrc
# User specific aliases and functions
alias dem='/bin/ls'
alias vi='/usr/bin/vim'
5. Suppression des alias
$ unalias {ll,vi}
6. Affiche des alias aprs suppression vi et ll ne sont plus
$ alias
alias dem='/bin/ls'
7. Simulation de redmarrage de session
$ source ~/.bashrc

8.

Affiche les alias


$ alias
alias dem='/bin/ls'
alias vi='/usr/bin/vim'

On voit bien que l'alias vi existe toujours.

PolytechNice Sophia / Universit de Nice Sophia Antipolis


930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France
Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

5
5

S. Lavirotte, D. Lopez, H. Renard


PolytechNice Sophia
PeiP 1
2014-2015

TD sances n 6
Gestion avance de Fichiers sous Unix
Exercices
1 Permissions sur les fichiers
Exercice n1:
1.
2.
3.

4.
5.
6.

Crez un rpertoire Linux et dplacez-vous dans celui-ci


Crez le fichier vide mon_fichier, et examinez ensuite ses permissions.
Pour chacun des exercices suivants, donnez la commande chmod correspondante avec le changement de
permissions en symbolique et en octal. Donnez successivement au fichier les droits ncessaires pour que
vous puissiez :
a. Lire, modifier et excuter votre fichier.
b. Lire, modifier mais ne pas excuter votre fichier.
c. Lire mais ne pas modifier ou excuter votre fichier.
Accordez maintenant toutes les permissions au propritaire et la lecture seulement pour le groupe et rien
pour les autres.
Maintenant tentez de consulter le fichier mon_fichier cr par votre voisin et testez ce que vous pouvez
faire sur ce fichier. Expliquez.
Positionnez les permissions ncessaires pour qu'un utilisateur de votre groupe puisse lire, modifier mais ne
pas supprimer votre fichier. Que faut-il faire pour pouvoir supprimer le fichier ?

2 Liens physiques et symboliques


Exercice n2:
1.
2.
3.

4.
5.
6.
7.

Crez dans votre rpertoire ~ un rpertoire tmp qui contient un fichier bidon. A laide de gedit, ajoutez
une ligne de texte dans le fichier bidon.
Dans votre home directory (~), crez un lien physique appel dhuile vers le fichier tmp/bidon. Comparez
les contenus de tmp/bidon et de ~/dhuile. Que contient dhuile ?
Notez les droits que vous avez actuellement sur le fichier ~/dhuile. Modifiez les droits sur le fichier
tmp/bidon pour avoir les permissions suivantes rw-r-----. Quels sont les droits daccs sur le fichier
~/dhuile ?
Supprimez le fichier tmp/bidon puis consultez le contenu du fichier dhuile. Que constatez-vous ?
Aprs avoir effac le fichier dhuile, refaites les questions 1, 2 et 3 de cet exercice, mais au lieu de faire un
lien physique, faite un lien symbolique.
Quelles sont les diffrences entre les liens physiques et les liens symboliques ?
Faites un lien physique de nom cherche dans /tmp sur le fichier /usr/bin/find. Que se passe-t-il ? En
dduire dans quel cas on ne peut pas faire de lien physique ? Que faut-il faire alors ?

3 Alias
Exercice n3:
Faire un alias qui permet de voir les fichiers cachs et d'afficher les fichiers en couleur.

PolytechNice Sophia / Universit de Nice Sophia Antipolis


930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France
Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

6
6

S. Lavirotte, D. Lopez, H. Renard


PolytechNice Sophia
PeiP 1
2014-2015

TD sances n 6
Gestion avance de Fichiers sous Unix
Synthse

Nous allons explorer un peu plus en dtail les possibilits du systme de fichier UNIX travers le concept de lien et
la notion de numro d'i-nud.

Exercice A :

Pour commencer, crez l'arborescence suivante dans votre dossier homedir.

Donnez trois faons de dsigner le fichier fic6 depuis votre homedir.


l'aide dun diteur de texte, crivez Il fait beau aujourd'hui ! dans le fichier fic6.
l'aide de la commande cat, affichez le contenu du fichier fic6 depuis votre rpertoire rep2.
L'option -l de la commande ls permet entre d'autre d'observer les droits d'un fichier/rpertoire. quoi
correspondent les autres informations que l'on obtient grce cette commande ?

Exercice B :

Comme expliqu dans le cours, la commande ln sert crer des liens. Utilisez-la pour crer un lien
physique du fichier fic6 dans test sous le nom de lpfic6.
Modifiez le contenu du fichier lpfic6. Que constatez-vous pour le fichier fic6 ? Rciproquement, modifiez fic6, lisez lpfic6. Concluez.
Modifiez les droits d'accs au fichier fic6 pour les membres du groupe. Que constatez-vous pour le fichier lpfic6 ? Pouvez-vous avancer une explication ?
La commande ln peut aussi crer des liens symboliques avec l'option -s. Crez un lien symbolique du
fichier fic6 dans test que vous appelez lsfic6.
Regardez toutes les informations concernant les fichiers lpfic6 et lsfic6. Quelles diffrences notezvous ?
Essayez de modifiez les droits d'accs au fichier lsfic6. pour les mettre tous les droits pour les utilisateurs et le groupe, mais rien pour les autres. Que constatez-vous ?
Modifiez les droits d'accs au rpertoire rep1 pour ne plus y avoir accs. Essayez d'afficher le contenu de
lpfic6 et lsfic6. Que constatez-vous ? Pouvez-vous avancer une explication ?
Modifiez de nouveau les droits d'accs au rpertoire rep1 pour y avoir de nouveau accs. Dplacez le fichier fic6 dans le rpertoire rep1. Essayez d'afficher le contenu de lpfic6 et lsfic6. Que constatezvous ?
Redplacez le fichier fic6 dans le rpertoire rep4. Essayez nouveau d'afficher les contenus de lpfic6 et
lsfic6. Supprimez le fichier fic6 puis recommencez. Que constatez-vous ?

Pour la suite de la synthse d'exercices, recrez le fichier fic6 dans le rpertoire rep4.

PolytechNice Sophia / Universit de Nice Sophia Antipolis


930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France
Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

7
7

S. Lavirotte, D. Lopez, H. Renard


PolytechNice Sophia
PeiP 1
2014-2015

TD sances n 6
Gestion avance de Fichiers sous Unix
Exercice C :

Observons maintenant plus attentivement le rpertoire rep2. Combien y a-t-il de liens sur ce rpertoire ?
quoi correspondent-ils ?
Dans le rpertoire rep2, crez un sous-rpertoire rep3. Combien y a-t-il maintenant de liens sur le rpertoire rep2 ? Expliquez.
Crez un lien physique lprep4 du rpertoire rep4 dans le rpertoire test. Que remarquez-vous ?

Avec les implmentations existant actuellement, seul le super-utilisateur peut crer un lien matriel sur un rpertoire, et encore, ce n'est pas toujours possible. Par contre, on peut tout fait crer un lien symbolique sur un rpertoire.
Crez un lien symbolique lsrep4 du rpertoire rep4 dans le rpertoire test.
Crez un lien symbolique lslsrep4 du lien lsrep4 dans le rpertoire rep2.
Donnez trois manires diffrentes de se dplacer dans le rpertoire rep4 partir du rpertoire test.
En utilisant successivement ces trois mthodes, dplacez vous dans le rpertoire rep4 puis remonter dans
le rpertoire parent l'aide de la commande cd ... Que remarquez-vous ?
Que se passe-t-il si on utilise la commande ls -Ral sur lsrep4 ? et sur lslsrep4 ?
la fin de cet exercice, nous avons maintenant l'arborescence suivante :

Exercice D :

l'aide de la commande ls munie de l'option approprie, observez le numro d'i-nud du fichier fic2.
Copiez le fichier fic2 dans le rpertoire rep3. Quel est son numro d'i-nud ?
Changez le nom de ce dernier fichier, pour l'appeler fic6. Le numro d'i-nud change-t-il ?
Comparez les numros d'i-nuds entre le fichier fic6 du rpertoire rep4, lpfic6 et lsfic6. Que remarquez-vous ? Expliquez maintenant plus clairement les dernires questions de l'exercice B.
Observez maintenant le numro d'i-nud de la racine et de votre rpertoire personnel. Que remarquezvous ?

PolytechNice Sophia / Universit de Nice Sophia Antipolis


930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France
Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

8
8