Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:enicar:tutos:peregrination-autour-de-ls-l [21/03/2015 09:57] enicar [Pérégrination autour de ls -l] |
utilisateurs:enicar:tutos:peregrination-autour-de-ls-l [21/03/2015 19:32] enicar [Type de fichier et permissions] |
||
---|---|---|---|
Ligne 55: | Ligne 55: | ||
<file bash>-rw-r--r--</file> | <file bash>-rw-r--r--</file> | ||
Il est composé de 4 sous champs. De la gauche vers la droite : | Il est composé de 4 sous champs. De la gauche vers la droite : | ||
- | * **-** : C'est une fichier normal (voir Type de fichier ci-dessous) | + | * **-** : C'est un fichier normal (voir Type de fichier ci-dessous) |
* **rw-** : Permission pour le propriétaire du fichier | * **rw-** : Permission pour le propriétaire du fichier | ||
* **r--** : Permission pour le groupe auquel appartient le fichier | * **r--** : Permission pour le groupe auquel appartient le fichier | ||
Ligne 65: | Ligne 65: | ||
^Code^ Type de fichier^ | ^Code^ Type de fichier^ | ||
|-|Fichier normal| | |-|Fichier normal| | ||
- | |d|Répertoire (**d**irectory)| | + | |d|Répertoire (**d**irectory) ([[peregrination-autour-de-ls-l?&#les-repertoires|Les répertoires]])| |
|l|Lien symbolique (symbolic **l**ink)| | |l|Lien symbolique (symbolic **l**ink)| | ||
|p|Tube nommé (**p**ipe)| | |p|Tube nommé (**p**ipe)| | ||
- | |s|Socket unix| | + | |s|**S**ocket unix| |
|b|Périphérique avec accès de type **b**loc| | |b|Périphérique avec accès de type **b**loc| | ||
|c|Périphérique avec accès de type **c**aractère| | |c|Périphérique avec accès de type **c**aractère| | ||
Ligne 78: | Ligne 78: | ||
pour un droit en lecture, en écriture ou en exécution. C'est pour cela que je parlerai, | pour un droit en lecture, en écriture ou en exécution. C'est pour cela que je parlerai, | ||
par exemple, du bit de lecture pour le propriétaire. | par exemple, du bit de lecture pour le propriétaire. | ||
- | <note>J'expliquerai plus tard ce que sont les inodes</note> | + | <note>Voir [[peregrination-autour-de-ls-l?&#liens-et-inodes|ici]] ce que sont les inodes</note> |
Le champ des permissions est organisé en trois groupes qui correspondent aux permissions pour | Le champ des permissions est organisé en trois groupes qui correspondent aux permissions pour | ||
Ligne 104: | Ligne 104: | ||
|s|Le bit setuid ou setgid est positionné ainsi que le droit en exécution| | |s|Le bit setuid ou setgid est positionné ainsi que le droit en exécution| | ||
- | On parle de setuid pour c'est l'attribut du propriétaire qui est positionné, et de setgid | + | On parle de setuid quand c'est l'attribut du propriétaire qui est positionné, et de setgid |
quand c'est l'attribut du groupe. | quand c'est l'attribut du groupe. | ||
Ligne 242: | Ligne 242: | ||
+ | Nous allons faire quelques expérience pratique pour démontrer ce fonctionnement. | ||
+ | J'ai dit plus [[peregrination-autour-de-ls-l?&#la-sortie-de-ls--l|haut]] que l'option **-i** permettait de | ||
+ | connaître le numéro d'inode. C'est cette option que nous allons utiliser. | ||
+ | Mais avant, nous allons créer un répertoire de test afin d'éviter de faire des | ||
+ | bêtises… | ||
+ | <code user> | ||
+ | mkdir ~/essai-de-liens | ||
+ | cd ~/essai-de-liens | ||
+ | </code> | ||
+ | |||
+ | Vous devriez, à présent, vous trouvez dans le répertoire **essai-de-liens**. | ||
+ | Créons un nouveau fichier que nous allons appelé **machin** | ||
+ | <code user> | ||
+ | touch machin | ||
+ | </code> | ||
+ | Nous pouvons vérifier que machin existe bien : | ||
+ | <code user> | ||
+ | ls -l machin | ||
+ | </code> | ||
+ | <file - Affiche> | ||
+ | -rw-r--r-- 1 enicar enicar 0 mars 21 17:02 machin | ||
+ | </file> | ||
+ | Donc le fichier existe, sa taille est nulle et son compteur de lien est &gale à 1. | ||
+ | Bien, on va créer un lien sur **machin** avec la commande **ln** : | ||
+ | <code user> | ||
+ | ln machin bidule | ||
+ | </code> | ||
+ | Regardons les numéros d'inode de nos deux fichiers : | ||
+ | <code user> | ||
+ | ls -i machin bidule | ||
+ | </code> | ||
+ | <file - Affiche> | ||
+ | 6488098 bidule 6488098 machin | ||
+ | </file> | ||
+ | Le numéro d'inode sera différent chez vous, bien entendu. Mais ça devrait être le même | ||
+ | numéro d'inode. C'est ce qui est important. Ça démontre que les deux fichiers sont | ||
+ | en fait les mêmes ! | ||
+ | Essayons, de modifier **machin** : | ||
+ | <code user> | ||
+ | echo "je suis machin" >machin | ||
+ | cat machin | ||
+ | </code> | ||
+ | <file - Affiche> | ||
+ | je suis machin | ||
+ | </file> | ||
+ | Voyons à présent ce qu'il y a dans **bidule** | ||
+ | <code user> | ||
+ | cat bidule | ||
+ | </code> | ||
+ | <file - Affiche> | ||
+ | je suis machin | ||
+ | </file> | ||
+ | Voilà ! En modifiant, les données de **machin** nous avons modifié celle de **bidule**, car les deux | ||
+ | fichiers ont les mêmes données sur le disque. Tenez, regardons le compteur de lien de nos deux fichiers : | ||
+ | <code user> | ||
+ | ls -l bidule machin | ||
+ | </code> | ||
+ | <file - Affiche> | ||
+ | -rw-r--r-- 2 enicar enicar 15 mars 21 17:11 bidule | ||
+ | -rw-r--r-- 2 enicar enicar 15 mars 21 17:11 machin | ||
+ | </file> | ||
+ | Oh ! Le compteur de lien de machin a été incrémenté de 1, celui de bidule est aussi de 2 ! | ||
+ | On va aller plus loin, grâce à la commande **stat** : | ||
+ | <code user> | ||
+ | stat bidule machin | ||
+ | </code> | ||
+ | <file - Affiche> | ||
+ | Fichier : « bidule » | ||
+ | Taille : 15 Blocs : 8 Blocs d'E/S : 4096 fichier | ||
+ | Périphérique : fe05h/65029d Inœud : 6488098 Liens : 2 | ||
+ | Accès : (0644/-rw-r--r--) UID : ( 1000/ enicar) GID : ( 1000/ enicar) | ||
+ | Accès : 2015-03-21 17:11:49.642004857 +0100 | ||
+ | Modif. : 2015-03-21 17:11:43.670004690 +0100 | ||
+ | Changt : 2015-03-21 17:11:43.670004690 +0100 | ||
+ | Créé : - | ||
+ | Fichier : « machin » | ||
+ | Taille : 15 Blocs : 8 Blocs d'E/S : 4096 fichier | ||
+ | Périphérique : fe05h/65029d Inœud : 6488098 Liens : 2 | ||
+ | Accès : (0644/-rw-r--r--) UID : ( 1000/ enicar) GID : ( 1000/ enicar) | ||
+ | Accès : 2015-03-21 17:11:49.642004857 +0100 | ||
+ | Modif. : 2015-03-21 17:11:43.670004690 +0100 | ||
+ | Changt : 2015-03-21 17:11:43.670004690 +0100 | ||
+ | Créé : - | ||
+ | </file> | ||
+ | Vous pouvez vérifier que pour **bidule** et **machin** les dates de dernier accès sont les mêmes. Il en | ||
+ | est de même pour les dates de changement et dernière modification. Les deux fichiers sont indiscernables, | ||
+ | tant au niveau de leur données que de leur métadonnées. | ||
+ | |||
+ | Supprimons **machin** : | ||
+ | <code user> | ||
+ | rm machin | ||
+ | </code> | ||
+ | Voyons, ce qu'il y a dans **bidule** : | ||
+ | <code user> | ||
+ | cat bidule | ||
+ | </code> | ||
+ | <file - Affiche> | ||
+ | je suis machin | ||
+ | </file> | ||
+ | Le fichier **bidule** existe toujours, ses données n'ont pas changé. | ||
+ | |||
+ | ===== Les répertoires ===== | ||
FIXME À SUIVRE... | FIXME À SUIVRE... |