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 [20/03/2015 22:34]
enicar [La sortie de ls -l]
utilisateurs:enicar:tutos:peregrination-autour-de-ls-l [21/03/2015 09:51]
enicar [Liens et inodes]
Ligne 6: Ligne 6:
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
      * [[doc:​systeme:​ls|commande ls]]      * [[doc:​systeme:​ls|commande ls]]
 +     * [[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]]
  
 ===== Introduction ===== ===== Introduction =====
Ligne 15: Ligne 18:
 </​code>​ </​code>​
 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/btrfs). +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 26: Ligne 29:
 </​code>​ </​code>​
  
-<​file ​bash Ce qui me donne>+<​file ​Ce qui me donne>
 -rw-r--r-- 1 enicar enicar 1436 avril 23  2014 /​home/​enicar/​.bashrc -rw-r--r-- 1 enicar enicar 1436 avril 23  2014 /​home/​enicar/​.bashrc
 </​file>​ </​file>​
Ligne 34: Ligne 37:
 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|
-|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|
  
-Détaillons tout cela un peu plus. +<​note>​  
-=== Type de fichier et permissions ===+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 ​=====
 Détaillons,​ le champ : Détaillons,​ le champ :
 <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+  * **-**   : C'est une 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
   * **r--** : Permission pour les autres (ceux qui ne sont ni le propriétaire,​ ni le groupe).   * **r--** : Permission pour les autres (ceux qui ne sont ni le propriétaire,​ ni le groupe).
  
-== Type de fichier ==+==== Type de fichier ​====
 Dans un système de fichier de type unix, il existe plusieurs types de fichiers. La commande « ls -l » Dans un système de fichier de type unix, il existe plusieurs types de fichiers. La commande « ls -l »
 utilise un caractère pour nous informer sur ce type : utilise un caractère pour nous informer sur ce type :
Ligne 64: Ligne 71:
 |c|Périphérique avec accès de type **c**aractère| |c|Périphérique avec accès de type **c**aractère|
  
-== Permissions ==+==== Permissions ​====
 Les permissions sont stockés dans le premier inode (au moins) du fichier sous la forme Les permissions sont stockés dans le premier inode (au moins) du fichier sous la forme
 d'un entier. Cet entier un vecteur de bits. C'est à dire que chaque bit de cet entier d'un entier. Cet entier un vecteur de bits. C'est à dire que chaque bit de cet entier
Ligne 72: Ligne 79:
 <​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 92: Ligne 102:
 |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 :
 <code user> <code user>
-ls -l bin/su+ls -l /bin/su
 </​code>​ </​code>​
-<​file ​bash Nous affiche>+<​file ​- Affiche>
 -rwsr-xr-x 1 root root 38868 nov.  19 22:03 /bin/su -rwsr-xr-x 1 root root 38868 nov.  19 22:03 /bin/su
 </​file>​ </​file>​
 Ici, nous voyons que la commande « su » a son bit setuid positionné. Ici, nous voyons que la commande « su » a son bit setuid positionné.
-Je reviendrais plus tard sur la signification et l'​usage des setuid et setgid.+<​note>​Je reviendrais plus tard sur la signification et l'​usage des setuid et setgid.</​note>​
  
 Pour terminer avec les droits, le champ « rwx » des autres (c'est à dire ceux qui ne sont ni le propriétaire,​ Pour terminer avec les droits, le champ « rwx » des autres (c'est à dire ceux qui ne sont ni le propriétaire,​
Ligne 114: Ligne 127:
 ls -ld /tmp ls -ld /tmp
 </​code>​ </​code>​
-<​file ​bash Nous affiche>+<​file ​- Affiche>
 drwxrwxrwt 9 root root 8192 mars  20 20:25 /tmp drwxrwxrwt 9 root root 8192 mars  20 20:25 /tmp
 </​file>​ </​file>​
 Nous voyons bien que le bit **t** est positionné. Nous voyons bien que le bit **t** est positionné.
  
-=== Propriétaire et groupe ===+===== Propriétaire et groupe ​=====
 Dans un système unix chaque fichier appartient à un utilisateur (que l'on appelle son propriétaire) et à Dans un système unix chaque fichier appartient à un utilisateur (que l'on appelle son propriétaire) et à
 un groupe. Chaque utilisateur fait aussi partie d'un groupe au moins (Voyez ce qu'​affiche la commande « **groups** » un groupe. Chaque utilisateur fait aussi partie d'un groupe au moins (Voyez ce qu'​affiche la commande « **groups** »
Ligne 129: Ligne 142:
 sur les systèmes qui sont vraiment utilisés par plusieurs personnes. sur les systèmes qui sont vraiment utilisés par plusieurs personnes.
  
-=== Taille du fichier ===+===== Taille du fichier ​=====
 Par défaut « **ls -l** » affiche la taille en octets. On peut obtenir un affichage plus parlant avec l'​option Par défaut « **ls -l** » affiche la taille en octets. On peut obtenir un affichage plus parlant avec l'​option
 « **-h** » (comme **h**uman readable, c'est à dire lisible pour un humain): « **-h** » (comme **h**uman readable, c'est à dire lisible pour un humain):
Ligne 135: Ligne 148:
 ls -lh ~/.bashrc ls -lh ~/.bashrc
 </​code>​ </​code>​
-<​file ​bash Affiche>+<​file ​Affiche>
  ​-rw-r--r-- 1 enicar enicar 1,5K avril 23  2014 /​home/​enicar/​.bashrc  ​-rw-r--r-- 1 enicar enicar 1,5K avril 23  2014 /​home/​enicar/​.bashrc
 </​file>​ </​file>​
Ligne 144: Ligne 157:
 alors que un méga = 1000 * 1000.</​note>​ alors que un méga = 1000 * 1000.</​note>​
  
-=== Date de dernière modification ===+===== Date de dernière modification ​=====
 Par défaut « **ls -l** » affiche la date de dernière modification. Chaque fichiers, possèdent Par défaut « **ls -l** » affiche la date de dernière modification. Chaque fichiers, possèdent
 plusieurs horodatages. Il en existe 3 : plusieurs horodatages. Il en existe 3 :
Ligne 155: Ligne 168:
 stat ~/.bashrc stat ~/.bashrc
 </​code>​ </​code>​
-<​file ​bash Affiche>+<​file ​Affiche>
   Fichier : « /​home/​enicar/​.bashrc »   Fichier : « /​home/​enicar/​.bashrc »
    ​Taille :​ 1436        Blocs : 8          Blocs d'​E/​S :​ 4096   ​fichier    ​Taille :​ 1436        Blocs : 8          Blocs d'​E/​S :​ 4096   ​fichier
Ligne 166: Ligne 179:
 </​file>​ </​file>​
 On voit les trois différentes dates. ​ La date de dernière modification est changée lorsqu'​on modifie ​ On voit les trois différentes dates. ​ La date de dernière modification est changée lorsqu'​on modifie ​
-les données du fichier. La date de dernier ​« changement ​» indique la date de dernière modification ou du dernier changement ​de droitde propriétaire ​ou de groupe. La date de dernier accès est changé lors d'un accès en lecture et aussi quand l'une des dates de modification ou de changement est changée.+les données du fichier. La date de dernier changement indique la date dernier changement ​des méta données concernant le fichier (c'est à direles informations,​ comme sa taille, son propriétaire, son groupe, ses droits, son nombre de liens,​…)FIXME. La date de dernier accès est changé lors d'un accès en lecture et aussi quand l'une des dates de modification ou de changement est changée. ​FIXME
  
 On peut obtenir les dates de derniers accès et de dernier changement avec « **ls -l** ». Une option On peut obtenir les dates de derniers accès et de dernier changement avec « **ls -l** ». Une option
Ligne 175: Ligne 188:
 |ctime ou status|-c|date de dernier changement| |ctime ou status|-c|date de dernier changement|
  
-=== Nom du fichier ===+===== Nom du fichier ​=====
  
 Nous avons ici : Nous avons ici :
Ligne 181: Ligne 194:
 /​home/​enicar/​.bashrc /​home/​enicar/​.bashrc
 </​file>​ </​file>​
-**ls** n'​affiche pas le nom des fichiers en entier. C'est le shell qui a substitué le « **~** » en « /​home/​enicar ». +**ls** n'​affiche pas le nom des fichiers ​avec le chemin ​en entier. C'est le shell qui a substitué le « **~** » en « /​home/​enicar ». 
-C'est la même chose qui se passe quand on utilise un méta caractère du shell comme «** * **». +La même chose se passe quand on utilise un méta caractère du shell comme «** * **». 
-Comparez ​les sorties des deux commandes :+Pour vous en convaincre, comparez ​les sorties des deux commandes :
 <code user> <code user>
 ls * ls *
 echo * echo *
 </​code>​ </​code>​
-pour vous en convaincre. ​**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. 
 + 
  
  

Pied de page des forums

Propulsé par FluxBB