logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 07:59]
enicar [Type de fichier et permissions]
utilisateurs:enicar:tutos:peregrination-autour-de-ls-l [21/03/2015 18:32]
enicar [Type de fichier et permissions]
Ligne 8: Ligne 8:
      * [[doc:​systeme:​ln|commande ln]]      * [[doc:​systeme:​ln|commande ln]]
      * [[doc:​systeme:​droits-unix|droit unix]]      * [[doc:​systeme:​droits-unix|droit unix]]
 +     * [[doc:​systeme:​chmod|commande chmod]]
 +     * [[doc:​systeme:​chown|commande chown]]
 +     * [[doc:​systeme:​touch|commande touch]]
  
 ===== Introduction ===== ===== Introduction =====
Ligne 17: Ligne 20:
 Ceci permettra d'​aborder les droits sur les fichiers, les notions de propriétaires et de groupe et Ceci permettra d'​aborder les droits sur les fichiers, les notions de propriétaires et de groupe et
 les divers type de fichiers qui existent sur un système de fichier linux (ext2/​ext3/​ext4). les divers type de fichiers qui existent sur un système de fichier linux (ext2/​ext3/​ext4).
-Certaines ​de ces notions sont aussi vraies pour d'​autres systèmes de fichiers unix, bien sûr ;)+La plupart ​de ces notions sont aussi vraies pour d'​autres systèmes de fichiers unix, bien sûr ;)
  
 Donc je vais d'​abord exposer ces notions essentielles,​ et ensuite on va revenir sur des exemples Donc je vais d'​abord exposer ces notions essentielles,​ et ensuite on va revenir sur des exemples
Ligne 35: Ligne 38:
 Nous avons, de la gauche vers la droite : Nous avons, de la gauche vers la droite :
 ^ champ ^ signification^ ^ champ ^ signification^
-|-rw-r--r--| Type de fichier, et permissions (c'est à dire droits)| +|-rw-r--r--| [[peregrination-autour-de-ls-l?&#​type-de-fichier-et-permissions|Type de fichier, et permissions]] (c'est à dire droits)| 
-| 1|Le nombre de liens| +| 1|Le nombre de liens ([[peregrination-autour-de-ls-l?&#​liens-et-inodes|Liens et inodes]])
-|enicar|Le propriétaire du fichier| +|enicar|Le propriétaire du fichier ​([[peregrination-autour-de-ls-l?&#​proprietaire-et-groupe|Propriétaire et groupe]])
-|enicar|Le groupe à qui appartient le fichier| +|enicar|Le groupe à qui appartient le fichier ​([[peregrination-autour-de-ls-l?&#​proprietaire-et-groupe|Propriétaire et groupe]])
-|1436|La taille du fichier en octects+|1436|La ​[[peregrination-autour-de-ls-l?&#​taille-du-fichier|taille du fichier]] ​en octets
-|avril 23 2014|La date de dernière modification|+|avril 23 2014|[[peregrination-autour-de-ls-l?&#​date-de-derniere-modification|La date de dernière modification]]|
 |/​home/​enicar/​.bashrc| Le nom du fichier| |/​home/​enicar/​.bashrc| Le nom du fichier|
  
-<​note> ​L'option ​**-i** permet d'​afficher en plus le numéro d'​inode.</​note>​ +<​note> ​ 
-<​note>​ L'​option ​**-g** est identique ​ à **-l**, mis à part qu'​elle n'​affiche pas le nom du propriétaire.</​note>​+Deux options (entre autre) permettent de modifier l'affichage de **ls -l** 
 +  * **-i** permet d'​afficher en plus le numéro d'​inode 
 +  ​* ​**-g** est identique ​ à **-l**, mis à part qu'​elle n'​affiche pas le nom du propriétaire. 
 +</​note>​
 ===== Type de fichier et permissions ===== ===== Type de fichier et permissions =====
 Détaillons,​ le champ : Détaillons,​ le champ :
Ligne 59: 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 74: Ligne 80:
 <​note>​J'​expliquerai plus tard ce que sont les inodes</​note>​ <​note>​J'​expliquerai plus tard ce que sont les inodes</​note>​
  
-Signification ​pour les trois champs ​des lettres ​« **rwx** » sont :+Le champ des permissions est organisé en trois groupes qui correspondent aux permissions pour  
 +le propriétaire,​ pour le groupe et pour les autres. Pour chacun de ces groupes, trois attributs 
 +peuvent être positionné ou non. 
 + 
 +La signification ​pour les trois groupe ​des attributs ​« **rwx** » est :
 ^Code^Signification^ ^Code^Signification^
 |r|Accès en lecture autorisé| |r|Accès en lecture autorisé|
 |w|Accès en écriture autorisé| |w|Accès en écriture autorisé|
 |x|Droits d'​exécution ou droit de faire un « cd »| |x|Droits d'​exécution ou droit de faire un « cd »|
-|-|Aucun droit|+|-|L'​attribut n'est pas positionné|
  
-Les droits sont toujours dans le même ordre : lecture, écriture, exécution. 
 Quelques exemples éclaircirons les choses : Quelques exemples éclaircirons les choses :
 ^Code^Signification^ ^Code^Signification^
Ligne 94: Ligne 103:
 |S|Le bit setuid ou setgid est positionné,​ mais pas le droit en exécution| |S|Le bit setuid ou setgid est positionné,​ mais pas le droit en exécution|
 |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
 +quand c'est l'​attribut du groupe.
  
 Par exemple : Par exemple :
Ligne 192: Ligne 204:
 Nous voyons que **ls** met en forme la sortie alors que **echo** fait juste un… écho ! Nous voyons que **ls** met en forme la sortie alors que **echo** fait juste un… écho !
  
 +===== Liens et inodes =====
 +
 +Les données d'un fichier sont écrites sur le disque sous forme de blocs.
 +L'​information où se trouve ces blocs, est contenu dans un ensemble
 +d'​inodes (sous forme de numéro de bloc).
 +
 +
 +<​note>​ inode peut être traduit par i-nœud, c'est à dire nœud
 +d'​information. J'ai préféré gardé le terme employé couramment par les
 +initiés.
 +</​note>​
 +
 +
 +Cet ensemble d'​inodes a un premier inode qui sert à référencer le fichier.
 +Un répertoire fait correspondre un chemin (le nom du fichier) avec ce
 +premier inode. ​ De cet façon on peut avoir plusieurs noms pour le même
 +fichier. Ces différents noms pointent sur le même premier inode.
 +
 +
 +Le nombre d'​inodes utilisés par un fichier dépend évidemment de sa
 +taille. Un seul inode ne suffit pas pour donner la liste de blocs, sauf
 +pour les petits fichiers.
 +
 +
 +Le premier inode contient aussi les métadonnées associées au fichier.
 +C'est à dire, sa taille, son propriétaire,​ son groupe, les dates de
 +derniers changements,​ accès et modification,​ le nombre de lien et les
 +permissions.
 +
 +
 +Supposons à présent, que l'on est deux noms de fichiers qui pointent sur
 +le même inode. Donc, les données des « deux fichiers » sur le disque
 +sont au même endroit. Et donc ils ont exactement les mêmes données. Leur 
 +métadonnées contenues dans le premier inode sont les mêmes également.  ​
 +On voit bien que les deux fichiers sont indiscernables.
 +
 +
 +
 +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 =====
  

Pied de page des forums

Propulsé par FluxBB