Préparation LPI
Exam 101
104.6 Liens hard et liens
symboliques
1
104.6 – Domaines de connaissances
Poids : 2
Créer des liens
Identifier les liens hard et liens symboliques
Différence entre copie et création de lien
Utilisation de liens par l'administrateur
UPMC – FP – Préparation LPI - v1.1
2
104.6 – Liens
Quelques slides pour expliquer ce que l'on entend par « lien »
sous Linux....
UPMC – FP – Préparation LPI - v1.1
3
Notions d'objets Unix
Sous Unix, plusieurs type d'objets
fichiers
répertoires
objets associés aux disques durs, clefs USB, bandes
objets destinés à la communication entre applications
On manipule le plus souvent
fichiers
répertoires
Une règle que l'on vérifiera souvent
« Sous Unix, tout est fichier »
UPMC – FP – Préparation LPI - v1.1
4
Notions d'objets Unix
Sous Unix, la « casse » est importante : le système fait la
différence entre les majuscules et les minuscules
[aoi@test]$ ls l
total 0
rwrr 1 franck franck 0 mar 13 10:27 exemple.txt
rwrr 1 franck franck 0 mar 13 10:26 exeMPLE.TXT
rwrr 1 franck franck 0 mar 13 10:26 ExemplE.txt
rwrr 1 franck franck 0 mar 13 10:26 EXEMPLE.txt
Sous Unix
on évite les caractères espace, apostrophe, guillemets,
lettres accentuées dans les noms d'objet
on utilise généralement : les lettres minuscules, les lettres
majuscules, le tiret « », le point « . », l'underscore « _ »
UPMC – FP – Préparation LPI - v1.1
5
Notions d'objets Unix
Sur un système de fichier Unix, les objets (fichiers) sont gérés
par l'intermédiaire d'une « metadonnée » stockée dans le
système de fichier appelée inode
chaque inode dispose d'un numéro identifiant le fichier
il renseigne sur le type d'objet (fichier, répertoire,...)
il possède la liste des blocs de données qui correspondent à
son contenu
Attention : le nom de l'objet ne se trouve pas dans l'inode.
Le nom du fichier est géré par le répertoire.
UPMC – FP – Préparation LPI - v1.1
6
Notions d'objets Unix
Un fichier correspond à un inode de type fichier
Inode : 927
Type : fichier
Blocs de données :
23
47
198
2418
N° bloc : 23
Contenu :
Nous appren
N° bloc : 47
Contenu :
nons les no
N° bloc : 198
Contenu :
tions d'obj
N° bloc : 2418
Contenu :
ets unix
UPMC – FP – Préparation LPI - v1.1
7
Notions d'objets Unix
Sous unix, un répertoire est aussi un fichier
ce fichier particulier contient une liste d'associations : nom
de fichier inode
N° bloc : 56
Contenu :
(toto, 789)
Inode : 65
Type : répertoire
Blocs de données :
56
72
12048
1768
N° bloc : 72
Contenu :
Publicité
(titi, 6754)
N° bloc : 12048
Contenu :
(tata, 8756)
N° bloc : 1768
Contenu :
(tutu,59)
UPMC – FP – Préparation LPI - v1.1
8
Notions d'objets Unix
Le répertoire contient les noms de fichiers ainsi que l'inode
correspondant permettant d'y accéder
Cette association est un lien
$ vi repertoire1
"
=============================================================
===============
" Netrw Directory Listing (netrw v98)
" /home/franck/UNIX/repertoire1
" Sorted by name
" Sort sequence: [\/]$,*,\.bak$,\.o$,\.h$,\.info$,\.swp$,\.obj$
" Quick Help: <F1>:help :go up dir D:delete R:rename s:sortby x:exec
"
=============================================================
===============
../
./
tata
titi
toto
UPMC – FP – Préparation LPI - v1.1
9
Notions d'objets Unix
Un répertoire peut renvoyer sur un autre répertoire et ainsi de
suite
le système de fichier unix peut être ainsi représenté par un
arbre où chaque noeud correspond à un répertoire et
chaque feuille à un fichier
la racine de l'arbre s'appelle « / » (« slash »)
UPMC – FP – Préparation LPI - v1.1
10
Notions d'objets Unix
Il existe une notion de « descendance » dans les répertoires
.
..
Répertoire père
Nom du fils
Nom du fils
Répertoire fils
.
Donc où se trouve stocké le nom d'un répertoire s'il ne se
trouve pas dans l'inode ?...
UPMC – FP – Préparation LPI - v1.1
11
Notions d'objets Unix
Rep1
inode : 576
toto.txt
toto.txt
inode : 34
inode : 34
titi.txt
inode : 98
Rep2
inode : 1024
tutu.txt
inode : 76
Rep1
576
9999
.
..
toto.txt 34
98
titi.txt
1024
Rep2
Rep2
.
..
tutu.txt 76
1024
576
UPMC – FP – Préparation LPI - v1.1
12
Notions de chemins
On accède à un fichier à travers son « chemin » dans
l'arborescence
le chemin est constitué d'une liste de noms de répertoires et
se termine par le nom du fichier
le caractère « / » permet de séparer les différents répertoires
qui constituent le chemin
/repertoire1/répertoire2/fichier
UPMC – FP – Préparation LPI - v1.1
13
Notions de chemins
Chemin d'accès « absolu »
C'est le chemin qui permet d'accéder à un fichier et qui
Publicité
commence par la racine de l'arbre
Un chemin absolu doit toujours commencer par « / »
exemple : « /usr/include/sys/stat.h »
UPMC – FP – Préparation LPI - v1.1
14
Notions de chemins
Chemin d'accès « relatif »
C'est le chemin qui permet d'accéder à un fichier et qui peut
commencer à n'importe quel endroit de l'arbre excepté
la racine
Un chemin relatif est « relatif » à la position de référence
(le répertoire courant)
le répertoire courant est noté « . »
le répertoire parent du répertoire courant est noté « .. »
UPMC – FP – Préparation LPI - v1.1
15
Notions de chemins
exemple 1 : depuis « /usr/include/ », le chemin relatif du fichier
« stat.h » est « sys/stat.h »
UPMC – FP – Préparation LPI - v1.1
16
Notions de chemins
exemple 2 : depuis « /usr/include/ », le chemin relatif du fichier
« ls » est « ../../bin/ls »
UPMC – FP – Préparation LPI - v1.1
17
Notions de chemins
Importance des écritures « . » et « .. »
commande « find » pour lancer une recherche à partir de
l'endroit courant
$ find . name fichier print
pour lancer une commande qui se trouve dans le répertoire
courant
$ ./macommande
Comparaison Windows/Unix
Windows : plusieurs volumes « C:, D: »; « \ » comme
séparateur de répertoires
Unix : une arbre unique; « / » comme séparateur de
répertoires
UPMC – FP – Préparation LPI - v1.1
18
Liens sur objets
Rappel : les noms sont stockés dans les répertoires
un nom est appelé un lien sur l'objet
Sur Unix, chaque objet peuvent être associés plusieurs noms
Rep1
576
9999
.
..
toto.txt 34
98
titi.txt
1024
Rep2
Rep2
1024
576
.
..
tutu.txt 76
toto2.txt 34
inode : 34
referance counter = 2
UPMC – FP – Préparation LPI - v1.1
19
Liens sur objets
$ file unix
unix: directory
$ less unix
total 40
drwxrwxrx 4 franck franck 4096 jan 28 09:58 ./
drwxrwxrx 91 franck franck 12288 mar 9 23:53 ../
rwxrwxrx 1 franck franck 161 jui 3 2008 creuser.sh*
rwxrwxrx 1 franck franck 74 mar 28 2008 liste2.sh*
rwrwr 1 franck franck 60 jui 3 2008 liste.txt
drwxwx 2 franck franck 4096 mai 8 2008 rep/
drwxrwxrx 2 franck franck 4096 mai 8 2008 rep2/
unix (END)
UPMC – FP – Préparation LPI - v1.1
20
Liens sur objets
Dans l'inode d'un objet, il y a un compteur de liens :
compteur incrémenté lors de la création d'un nouveau lien
compteur décrémenté lors de la suppression d'un lien
l'objet est détruit lorsque le dernier lien sur l'objet est
supprimé
« . » et « .. » sont des liens
[aoi@test]$ ls l
total 5
rwrr 3 franck franck 111 mar 13 19:34 c
rwrr 3 franck franck 111 mar 13 19:34 c1
rwrr 3 franck franck 111 mar 13 19:34 c2
rwrr 1 franck franck 40 mar 13 19:26 d
drwxrxrx 2 franck franck 1024 mar 15 15:56 e/
UPMC – FP – Préparation LPI - v1.1
21
Liens sur objets
Publicité
[aoi@test]$ ls l dir
total 3
drwxrxrx 2 franck franck 1024 mar 16 23:23 a/
drwxrxrx 2 franck franck 1024 mar 16 23:23 b/
drwxrxrx 2 franck franck 1024 mar 16 23:23 c/
[aoi@test]$ ls ld dir
drwxrxrx 5 franck franck 1024 mar 16 23:23 dir/
UPMC – FP – Préparation LPI - v1.1
22
Liens sur objets
Il y a en effet 5 liens sur l'objet « dir » :
lien « /chemin/dir »
lien « /chemin/dir/. »
lien « /chemin/dir/a/.. »
lien « /chemin/dir/b/.. »
lien « /chemin/dir/c/.. »
UPMC – FP – Préparation LPI - v1.1
23
Liens sur objets
la commande « ls li » permet de vérifier que l'inode
correspondant à chaque nom relève bien du même fichier
[aoi@test]$ ls ldi dir dir/. dir/a/.. dir/b/.. dir/c/..
2165772 drwxrxrx 5 franck franck 1024 mar 16 23:23 dir/
2165772 drwxrxrx 5 franck franck 1024 mar 16 23:23 dir/./
2165772 drwxrxrx 5 franck franck 1024 mar 16 23:23 dir/a/../
2165772 drwxrxrx 5 franck franck 1024 mar 16 23:23 dir/b/../
2165772 drwxrxrx 5 franck franck 1024 mar 16 23:23 dir/c/../
Il existe deux types de liens
lien hard
lien symbolique
UPMC – FP – Préparation LPI - v1.1
24
Liens hard : ln
Le lien hard utilise le numéro d'inode pour identifier l'objet
un numéro unique par partition
confiné à l'intérieur d'une même partition (unicité de l'inode)
Contraintes
hard link impossible vers une autre
partition (risque de perte de
l'unicité de l'inode)
hard link impossible vers un
répertoire (risque de boucles
invisibles dans l'arborescence)
Utilisation courante : liens hard dans
un environnement « chrooté »
UPMC – FP – Préparation LPI - v1.1
25
Liens hard : ln
Commande « ln » (link)
ln original synonyme
[aoi@test]$ ls l fichier1
rwrr 1 franck franck 0 mar 17 08:31 fichier1
[aoi@test]$ ln fichier1 fichier2
[aoi@test]$ ls l fichier1 fichier2
rwrr 2 franck franck 0 mar 17 08:31 fichier1
rwrr 2 franck franck 0 mar 17 08:31 fichier2
[aoi@test]$ ls li fichier1 fichier2
1666053 rwrr 2 franck franck 0 mar 17 08:31
fichier1
1666053 rwrr 2 franck franck 0 mar 17 08:31
fichier2
UPMC – FP – Préparation LPI - v1.1
26
Liens hard : ln
Copies et déplacement vers un lien
[aoi@test]$ cp c fichier1
cp: écraser `fichier1'?y
[aoi@test]$ ls li fichier1 fichier2
1666053 rwrr 2 franck franck 111 mar 17 08:34 fichier1
1666053 rwrr 2 franck franck 111 mar 17 08:34 fichier2
[aoi@test]$ ls li fichier3
1666055 rwrr 1 franck franck 136 mar 17 08:43 fichier3
[aoi@test]$ mv fichier3 fichier2
mv: écraser `fichier2'?y
[aoi@test]$ ls li fichier1 fichier2
1666053 rwrr 1 franck franck 111 mar 17 08:34 fichier1
1666055 rwrr 1 franck franck 136 mar 17 08:43 fichier2
UPMC – FP – Préparation LPI - v1.1
27
Liens hard : ln
Différence entre copie et lien
$ ls i toto
291303 toto
$ cp toto titi
$ ll i toto titi
291301 rwrr 1 franck franck 24 20100324 15:20 titi
291303 rwrr 1 franck franck 24 20100324 15:20 toto
$ ln toto lientoto
$ ll i toto lientoto
291303 rwrr 2 franck franck 24 20100324 15:20 lien
toto
291303 rwrr 2 franck franck 24 20100324 15:20 toto
UPMC – FP – Préparation LPI - v1.1
28
Liens hard : ln
Suppression d'un lien par rm
[aoi@test]$ ls li fichier1 fichier2
1666053 rwrr 2 franck franck 111 mar 17 08:34 fichier1
Publicité
1666053 rwrr 2 franck franck 111 mar 17 08:34 fichier2
[aoi@test]$ rm fichier1
[aoi@test]$ ls li fichier1 fichier2
ls: fichier1: Aucun fichier ou répertoire de ce type
1666053 rwrr 1 franck franck 111 mar 17 08:34 fichier2
Place occupée (les liens ne prennent pas de place)
[aoi@test]$ ls la
total 4
drwxrxrx 2 franck franck 1024 mar 17 08:56 ./
drwxrxrx 5 franck franck 1024 mar 17 08:56 ../
rwrr 2 franck franck 111 mar 17 08:34 fichier1
rwrr 2 franck franck 111 mar 17 08:34 fichier2
[aoi@test]$ du b
1135 .
[aoi@test]$ rm fichier2
[aoi@test]$ du b
1135 .
UPMC – FP – Préparation LPI - v1.1
29
Liens symboliques : ln -s
Le lien symbolique est un fichier spécial contenant le chemin
d'accès à un autre objet
un numéro unique par partition
Utilisation courante :
fichier commun à plusieurs utilisateurs sur une partition
différente
liens sur des répertoires (cf. pb de filesystem saturé)
UPMC – FP – Préparation LPI - v1.1
30
Liens symboliques : ln -s
Commande « ln » (link)
ln s original synonyme
[aoi@test]$ ls l
total 1
rwrr 1 franck franck 294 mar 18 22:43 fichier1
[aoi@test]$ ln s fichier1 fichier2
[aoi@test]$ ls li fichier1 fichier2
1674243 rwrr 1 franck franck 294 mar 18 22:43 fichier1
1674242 lrwxrwxrwx 1 franck franck 8 mar 18 22:45 fichier2 >
fichier1
[aoi@test]$ ls lL fichier1 fichier2
rwrr 1 franck franck 294 mar 18 22:43 fichier1
rwrr 1 franck franck 294 mar 18 22:43 fichier2
UPMC – FP – Préparation LPI - v1.1
31
Liens symboliques : ln -s
Suppression d'un lien symbolique « rm »
[aoi@test]$ ls li fichier1 fichier2
1674243 rwrr 1 franck franck 294 mar 18 22:43 fichier1
1674242 lrwxrwxrwx 1 franck franck 8 mar 18 22:45 fichier2 >
fichier1
[aoi@test]$ rm fichier1
rm: détruire fichier régulier `fichier1'? y
[aoi@test]$ ls li fichier2
1674242 lrwxrwxrwx 1 franck franck 8 mar 18 22:45 fichier2 >
fichier1
[aoi@test]$ ls liL fichier2
ls: fichier2: Aucun fichier ou répertoire de ce type
[aoi@test]$ cat fichier2
cat: fichier2: Aucun fichier ou répertoire de ce type
UPMC – FP – Préparation LPI - v1.1
32
Liens symboliques : ln -s
Les systèmes Unix imposent les droits « lrwxrxrx » ou «
lrwxrwxrwx » sur le lien
ils ne peuvent être modifés
on peut seulement modifier les droits du fichier pointé par un
lien symbolique
[aoi@test]$ ls l fichier1 fichier2
rwrr 1 franck franck 307 mar 18 23:03 fichier1
lrwxrwxrwx 1 franck franck 8 mar 18 22:45 fichier2 >
fichier1
[aoi@test]$ chmod 600 fichier2
[aoi@test]$ ls l fichier1 fichier2
rw 1 franck franck 307 mar 18 23:03 fichier1
lrwxrwxrwx 1 franck franck 8 mar 18 22:45 fichier2 >
fichier1
UPMC – FP – Préparation LPI - v1.1
33
Utilisation des liens
En pratique les liens symboliques sont plus faciles d'utilisation
que les liens hard
Scripts System V
Permet de déplacer le contenu d'un répertoire de
l'arborescence vers une autre partition tout en conservant
les chemins
UPMC – FP – Préparation LPI - v1.1
34
Quelques conseils LPI...
Connaître l'utilisation des commandes décrites
Connaître l'utilisation de l'option g pour que ces commandes
agissent sur les quotas de groupe
UPMC – FP – Préparation LPI - v1.1
35