{"partition": "head_middle", "source_domain": "traduc.org", "digest": "sha1:LUOD5ZX2NNMRZ2WXQJMQ5YUGVTBIIRNW", "path": "/lustre/fsn1/projects/rech/qgz/uzq54wg/processed_redpajama/base_processing/output/fr/2016-26/000_00033.parquet"}
LPI/Suivi/LPI101/Document/Systemes_fichiers
FrontPageRecentChangesFindPageHelpContentsÉcrireSurLeWikiSystemes_fichiers
Le système de fichiers Linux
État : Retour au document principal Contents
La structure du système de fichiers
Répertoires de base
Rôle des répertoires de base
Formatage et cohérence des systèmes de fichier
Outils de formatage
Cohérence des systèmes de fichiers
Commandes de déboguage des systèmes de fichiers
Contrôle de l'utilisation des disques
Avec mount et df
Utilisation de du
Droits d'accès et attributs des fichiers
Changement des permissions et des propriétaires
Notation symbolique et octale
Les permissions standard
Le SUID
Le SGID
Le sticky bit
Les attributs sur les fichiers
Résumé et exercices
Questions de révision
Travaux pratiques
Systèmes de fichiers
Permissions sur les fichiers
Réponses aux questions Pré-requis Avoir déjà installé Linux (voir Installation) Objectifs Introduction aux répertoires de base et aux concepts issus de la FHS (Filesystem Hierarchy Standard) ou norme de la hiérarchie des systèmes de fichiers Formater une partition en EXT2 ou EXT3 Contrôler l'espace libre par périphérique ou répertoire Comprendre les droits sur les fichiers et les répertoires dans le monde UNIX La structure du système de fichiers
Un système de fichiers est similaire à une arborescence. La racine de l'arborescence est au sommet et les feuilles en dessous. Comme nous l'avons déjà vu, vous devez donner un point de montage aux partitions que vous créez. En général, on le fait au moment de l'installation. Pour mieux comprendre où se trouvent les choses, jetons un œil à l'arborescence typique d'un système de fichiers Linux. Au sommet de l'arborescence, on trouve la racine (root) : /. C'est un peu comme le C:\ sous DOS, sauf que C:\ est également le premier périphérique, alors que la racine peut correspondre à n'importe quel périphérique de votre système. Répertoires de base
/  &lt;--- racine
bin  dev  etc  lib      |     mnt  proc  sbin
|    |    |    |       |      |     |     |
|      |     |    |    |        |       |    |
boot  home  root  tmp  usr  /usr/local  opt  var
Répertoires dont le point de montage peut être un périphérique autre que celui de la racine :
boot  home  root  tmp  usr  /usr/local  opt  varLes répertoires de base sont les premiers sous-répertoires sous la racine. Sur un système de type RedHat, ils sont installés par un paquet rpm du nom de filesystem : $ rpm -ql filesystemAu démarrage du système, le noyau monte la partition racine (/). Pour pouvoir monter et vérifier les autres partitions et systèmes de fichiers, un certain nombre de programmes comme fsck, insmod ou mount doivent être accessibles. Remarque : les répertoires /dev, /bin, /sbin, /etc et /lib doivent être sur la partition racine. De plus, la racine doit contenir un répertoire /proc vide. Il est utilisé par le noyau pour informer sur le statut du système d'exploitation (processus, statistiques d'utilisation de la mémoire, etc.). Rôle des répertoires de base
/bin et /sbin : contient les binaires nécessaires au démarrage et les commandes essentielles /dev : fichiers périphériques ou fichiers spécifiques /etc : fichiers et répertoires de configuration spécifiques à la machine /lib : bibliothèques partagées pour les binaires de /bin et /sbin. Contient également les modules du noyau. /mnt ou /media : points de montage pour les systèmes de fichiers externes /proc : informations du noyau. En lecture seule sauf pour /proc/sys. /boot : contient le noyau Linux, le System.map (carte des symboles du noyau) et les chargeurs d'amorçage secondaires. /home (facultatif) : répertoires utilisateurs, avec, en général, une copie du contenu de /etc/skel. /root : répertoire de l'utilisateur root. /tmp : fichiers temporaires. /usr : User Specific Ressource. Contenu essentiellement statique et partageable. NdT : /usr est composé de sous-répertoires bin, sbin, lib, slib et autres qui contiennent l'essentiel des programmes et bibliothèques de votre système non essentielles ni nécessaires au démarrage. /usr/local ou /opt : programmes et bibliothèques supplémentaires. NdT : en général, c'est dans ces répertoires que l'on place les programmes qui ne font pas partie des paquets des distributions. /var : données variables comme les spool ou les journaux. Les sous-répertoires peuvent être soit partageables (comme /var/spool/mail) soit non partageables (comme /var/log). /var/www, /var/ftp ou /srv : pages web ou fichiers ftp anonymes. Formatage et cohérence des systèmes de fichier
Il est nécessaire de créer un système de fichiers pour organiser les données sur une partition. La procédure d'installation vous demande quel type de système de fichier vous souhaitez utiliser. Vous avez un choix important de système de fichiers. Le format ext2, aussi connu comme le format natif pour Linux, est utilisé par défaut. Pour les programmes d'installation plus récents, ext3 (NdT et même aujourd'hui ext4 !) est utilisé par défaut. Ext3 est en fait un système ext2 journalisé. Pour la mémoire paginée (swap), vous n'avez pas le choix, vous devez utiliser le système de fichiers swap. Ext2
Regardons ext2 d'un peu plus prêt. Ext2 est constitué de blocs de 1024 octets (par défaut). Sans aller trop loin dans les détails, il y a 3 types de blocs : * les superblocs : répétés tous les 8193 blocs, les superblocs contiennent des informations sur la taille des blocs, les inodes libres, le dernier montage, etc. * les inodes : contient des pointeurs sur les blocs de données. Les 12 premiers blocs de données sont accédés directement. Si les données vont au-delà des 12 Ko, alors les inodes indirectes font le relai. * les blocs de données : correspondant aux fichiers ou aux répertoires, ils contiennent les données. Outils de formatage
Les systèmes de fichiers gérés par le noyau nous permettent de lire les disques déjà formatés. Pour créer des systèmes de fichiers sur un système en fonction, nous devons installer et utiliser les outils correspondants. Pour ext2, le programme de formatage est mkfs.ext2 ou mke2fs. De la même façon, pour le système de fichiers de Silicon Graphics xfs, vous utiliserez mkfs.xfs que vous devrez sans doute installer. Le programme mkfs agit comme une interface pour les outils spécifiques à chaque système de fichier. Sa syntaxe est : mkfs –t &lt;type de système&gt; &lt;périphérique&gt;Vous noterez de nouveau qu'ext3 est un système de fichiers ext2 auquel on a ajouté la journalisation (voir plus loin les exercices). Exemple 1 : formatage en jfs mkfs -t jfs /dev/hda12Exemple 2 : formatage en ext2fs mke2fs /dev/hda11    [or mkfs –t ext2 /dev/hda11]
Vous devez utiliser fsck quand le système de fichiers est endommagé ou corrompu, mais cela nécessite au minimum de démonter la partition ou de la monter en lecture seule. Comme mkfs, fsck se comporte comme une interface qui détecte automatiquement le type de système de fichiers de la partition. Ensuite, les programmes fsck.ext2, fsck.ext2, etc. sont appelés. Comme EXT2 est le système de fichiers principal de Linux, il existe une commande e2fsck qui ne gère que ce système de fichiers. Vous pouvez préciser le type de système de fichiers en utilisant la syntaxe suivante : fsck –t &lt;type de système&gt; &lt;périphérique&gt;Exemple : vérification d'un système de fichiers reiserfs sur le périphérique /dev/sdb10 : fsck –t reiserfs /dev/sdb10
fsck.reiserfs /dev/sdb10
Les commandes debugs et dumpe2fs sont rarement utilisées mais elles peuvent être utiles pour vous donner des informations de bas niveau sur un système de fichiers ext2 ou ext3. debugfs [ -b tailledebloc ] [ -s superbloc ] [ -f cmd_file ] [ -R request ] [ -V ] [ [ -w ] [ -c ] [ -i ] [ périphérique ] ]Le programme debugfs est un débogueur de système de fichiers interactif. Il peut être utilisé pour examiner ou modifier l'état d'un système de fichiers ext2/3. Une fois dans le shell de debugfs, vous pouvez utiliser les commandes internes pour parcourir l'arborescence, examiner les données d'inode, supprimer des fichiers, créer des liens, récupérer le journal d'ext3, etc. Cette commande est très puissante et doit être utilisée avec précaution, en général seulement pour essayer d'avancer alors que fsck a échoué. dumpe2fs [ -bfhixV ] [ -ob superbloc ] [ -oB tailledebloc ] &lt;périphérique&gt;dumpe2fs affiche les informations des superblocs et des groupes de blocs pour le système de fichiers sur le périphérique. dumpe2fs /dev/hda1
dumpe2fs 1.35 (28-Feb-2004)
Filesystem volume name:   /boot1
Last mounted on:          &lt;not available&gt;
Filesystem UUID:          d741042c-3eaf-49ee-94c1-7dd8c5459764
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              25584
Block count:              102280
Reserved block count:     5114
Free blocks:              80564
Free inodes:              25537
First block:              1
Block size:               1024
Fragment size:            1024
Reserved GDT blocks:      256
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         1968
Inode blocks per group:   246
Filesystem created:       Sat May  7 10:40:51 2005
Last mount time:          Sun May 29 04:08:01 2005
Last write time:          Sun May 29 04:08:01 2005
Mount count:              10
Maximum mount count:      -1
Last checked:             Sat May  7 10:40:51 2005
Check interval:           0 (&lt;none&gt;)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal inode:            8
Default directory hash:   tea
Directory Hash Seed:      50108791-6a0a-41ff-9608-0485c993eaf9
Journal backup:           inode blocks
Group 0: (Blocks 1-8192)
Primary superblock at 1, Group descriptors at 2-2
Block bitmap at 259 (+258), Inode bitmap at 260 (+259)
Inode table at 261-506 (+260)
0 free blocks, 1942 free inodes, 2 directories
Free blocks:
Free inodes: 27-1968
[....]
Ces deux outils fonctionnent au niveau des périphériques et non pas au niveau des répertoires. Les commandes mount et umount mettent à jour la liste des systèmes de fichiers montés dans /etc/mtab. mount sans option affiche la liste des systèmes de fichiers actuellement montés, qui est équivalente au contenu de /etc/mtab. Le noyau garde également une trace des systèmes de fichiers montés dans /proc/mounts. df' affiche également les systèmes de fichiers montés mais il affiche également l'espace disque utilisé et disponible. Par défaut, l'espace est donné en blocs de 1K.         df -h
/dev/hda9             289M  254M   20M  93% /
/dev/hda2              23M  7.5M   14M  35% /boot
none                   62M     0   61M   0% /dev/shm
/dev/hda5             1.4G  181M  1.1G  13% /share
/dev/hda7             787M   79M  669M  11% /tmp
/dev/hda3             4.3G  3.4G  813M  81% /usr
/dev/hda6             787M  121M  627M  17% /var
//192.168.123.2/share   12G  8.8G  3.7G  71% /mnt/smb
Cette commande affiche l'utilisation du disque, mais cette fois en se basant sur les répertoires, et non plus les périphériques. Vous noterez que du ne peut pas afficher l'espace disponible sur le disque puisque cette information n'est accessible qu'au niveau du périphérique. La commande suivante affiche la taille utilisée pour /etc en utilisant une unité compréhensible par les humains (-h) et n'affiche que le total (-s : summary).         du -sh /etc
62M     /etc/
Exemple : -rw-rw-r-- 1 utilisateur groupe 13281 2007-03-09 11:00 STATS.ods
/\           /\        /\
chmod        chown  chown/chgrpComme vous pouvez le voir dans l'exemple précédent, chmod est utilisé pour modifier les permissions. Il y a trois types de propriétaire pour chaque fichier ou répertoire : u : un utilisateur existant dans /etc/passwd g : un groupe existant valide de /etc/group o : les autres Exemple : -rw-rw-r--    1 jade   sales         24880 Oct 25 17:28 libcgic.aModification des permission avec chmod :         chmod g=r,o-r libcgic.a
chmod g+w  libcgic.aModification de l'utilisateur et du groupe avec chown et chgrp :         chown  root  libcgic.a
chgrp  apache libcgic.aRemarque : Les trois outils chmod, chown et chgrp ont l'option très pratique -R qui applique les modifications récursivement sur les répertoires et fichiers indiqués. Notation symbolique et octale
Les permissions sont soit la lecture read=r, l'écriture write=w et l'exécution execute=x. Voici les valeurs octales correspondant à ces permissions : Symbolique Octal Binaire r 4 '100' w 2 '010' x 1 '001' Ces permissions s'appliquent à l'utilisateur, au groupe et aux autres. Un élément a un ensemble de 3 permissions groupées pour chacune de ces catégories. Exemple : Interprétation d'une permission 755 ou -rwxr-xr-x : utilisateur : rwx, c'est à dire 4+2+1 = 7 groupe r-x, c'est à dire 4+1 = 5 autres r-x, c'est à dire 4+1 = 5 Les permissions standard
Les systèmes UNIX créent des fichiers et répertoires avec des permissions standard comme suit : Fichiers | 666 -rw-rw-rw- Répertoires | 777 -rwxrwxrwx Umask
Chaque utilisateur peut définir un umask qui altère la permission standard. Pour obtenir les permissions d'un fichier, on soustrait (*) la valeur octale du umask à la valeur octale de la permission standard. Cette permission n'a pas de nom mais on pourrait l'appeler la permission effective. (*) Même si la soustraction fonctionne dans la plupart des cas, vous devriez noter que la formule utilisée pour calculer les permissions est : Permissions finales = Permissions standard ET(logique) NON umaskSur les systèmes où les utilisateurs appartiennent à différents groupes, la valeur du umask peut être 002. Pour les systèmes où tous les utilisateurs sont dans le groupe users, le umask a toutes les chances d'être fixé à 022. Le SUID
On peut assigner une permission spéciale à un programme de façon à ce qu'il soit toujours lancé en tant que le propriétaire du fichier. On appelle cette permission SUID, ce qui signifie « set user ID » (définition de l'identifiant utilisateur). La valeur symbolique pour cette permission est s et la valeur numérique 4000. Les outils d'administration peuvent avoir le SUID défini de façon à permettre aux utilisateurs de modifier des fichiers système. Par exemple, la commande passwd peut être lancée par n'importe quel utilisateur pour lui permettre de changer son mot de passe, qui sera écrit soit dans /etc/passwd, soit dans /etc/shadow. Pourtant, ces deux fichiers appartiennent à l'utilisateur root et leurs permissions respectives sont 644 et 600. On résout ce problème en plaçant le bit SUID sur la commande passwd, ce qui la force à être lancée en tant que root et lui permet de modifier les fichiers /etc/passwd et /etc/shadow. Le SUID sur passwd : ls -l $(which passwd)
-r-s--x--x    1 root     root        18992 Jun  6  2003 /usr/bin/passwdRemarque : dans la commande précédente, le SUID est affiché dans sa forme symbolique. Vous pouvez obtenir plus d'information sur un fichier en utilisant stat et en regardant la représentation octale des permissions : stat /usr/bin/passwd
File: `/usr/bin/passwd'
Size: 18992    Blocks: 40   IO Block: 4096   regular file
Device: 305h/773d    Inode: 356680      Links: 1
Access: (4511/-r-s--x--x)  Uid: ( 0/ root)   Gid: ( 0/ root)Attention : La permission SUID pose souvent des problèmes de sécurité. En voici un exemple : Un utilisateur cherche à lire les mails du root. D'abord, il change sa variable d'environnement MAIL : export MAIL=/var/spool/mail/rootEnsuite, il lance la commande mail :  mail
/var/spool/mail/root: Permission deniedÇa ne fonctionne pas, ça aurait été trop facile ! Mais si un administrateur s'est laissé convaincre de placer le bit SUID sur la commande mail, les commandes précédentes permettraient à n'importe quel utilisateur de lire les mails de n'importe quel autre (root compris) ! Les exemples suivants sont également dangereux, pourquoi ? chmod 4755 /bin/cat
chmod u+s /bin/grep
Le SGID est une permission similaire au SUID mais pour le groupe. Sa valeur symbolique est s et sa valeur octale est 2000. Si vous placez le SGID sur un répertoire, les fichiers qui y seront ensuite créés appartiendront au groupe propriétaire de ce répertoire. Il n'est donc pas nécessaire d'utiliser newgrp pour modifier le groupe du processus utilisé pour la création du fichier (voir l'exercice plus loin). Exemples : chmod 2755 /home/data
chmod g+s /bin/wc
La permission sticky bit avec la valeur 1000 a l'effet suivant : appliqué à un répertoire, il empêche les utilisateurs de supprimer les fichiers dont ils ne sont pas propriétaires (idéal pour un répertoire partagé par un groupe) (NdT : le sticky bit est typiquement utilisé pour /tmp). appliqué à un fichier, il était utilisé pour charger le fichier en mémoire pour en accélérer les futurs accès ou exécutions. La valeur symbolique pour un exécutable est t, T pour un fichier non exécutable. Aujourd'hui comme le cache des systèmes de fichier est plus courant et plus performant, le sticky bit pour les fichiers tend à ne plus être supporté. Exemples : chmod 1666 /data/store.txt
chmod o+t /bin/bash
Au côté des permissions standard, il existe un autre système pour modifier la façon dont on peut accéder à un fichier. Les attributs de fichiers ne s'affichent pas avec la commande ls mais avec la commande lsattr. On utilise la commande chattr pour paramétrer ou supprimer ces attributs. Les attributs suivants existent. Veuillez noter les cas d'utilisation : * « A » : Quand on accède à un fichier avec l'attribut A, sa valeur atime (temps d'accès) n'est pas modifiée. Ceci évite un certain nombre d'accès disques, ce qui est plutôt pratique pour des fichiers temporaires. Attention cependant, certains outils comme tmpwatch se basent sur la valeur du atime pour déterminer l'utilisation récente d'un fichier, donc si le atime n'est pas mis à jour l'état du fichier sera mal interprété. « a » : L'accès en écriture aux fichiers avec l'attribut « a » est limité en ajout (append). Seul le super utilisateur ou un processus disposant de la capacité CAP_LINUX_IMMUTABLE peut définir ou supprimer cet attribut. L'utilisation la plus évidente est pour les fichiers journaux système, pour empêcher un intrus de retirer les traces de leur passage. Cependant, vous devriez garder à l'esprit qu'un intrus a besoin des droits root pour éditer ces fichiers journaux. Par conséquent, s'il les a, il peut retirer l'attribut « a », modifier les fichiers puis rétablir l'attribut « a ». « c » : un fichier avec l'attribut « c » est automatiquement compressé par le noyau. Vous accédez à vos données décompressées en lecture, et l'écriture sur le fichier compresse les données avant de les stocker sur le disque. Note : Même si l'attribut est défini sur un fichier et qu'il est affiché avec la commande lsattr, il n'est pas traité par les pilotes du noyau pour Ext2 ou Ext3. « D » : les modifications sur un répertoire avec l'attribut « D » sont écris de façon synchrone sur le disque. C'est l'équivalent de l'option dirsync de mount mais ici appliquée à un sous-ensemble de fichiers. Avec cet attribut, les opérations suivantes sont synchrones dans le répertoire : create, link, unlink, symlink, mkdir, rmdir, mknod et rename. « d » : un fichier avec l'attribut « d » ne sera pas sauvegardé quand la commande dump sera lancée. « i » : un fichier avec l'attribut « i » (immutable = immuable) ne peut pas être modifié. Il est impossible de le supprimer ou de le renommer, ni de créer un lien vers ce fichier, ni d'écrire dans le fichier. Seul le superutilisateur ou un processus ayant la capacité CAP_LINUX_IMMUTABLE peut définir ou retirer cet attribut. 'j' : les données d'un fichier ayant l'attribut « j » sont inscrites dans le journal ext3 avant d'être inscrites dans le fichier si le système de fichiers est monté avec l'option « data=ordered » ou « data=writeback ». Lorsque le système de fichiers est monté avec l'option « data », l'attribut est sans effet puisque les données de tous les fichiers sont écrites dans le journal. Seul le super utilisateur ou un processus ayant la capacité CAP_SYS_RESSOURCE peut définir ou retirer cet attribut. « s » : lorsqu'un fichier avec l'attribut « s » est supprimé, ses blocs sont remis à zéro et réinscrits sur le disque. Note : comme pour l'attribut « c », cet attribut n'est pas traité par les pilotes de système de fichiers ext2 et ext3. « S » : les données d'un fichier ayant l'attribut « S » sont inscrites sur le disque de façon synchrones. C'est l'équivalent de l'option de « sync » de mount appliquée à un sous-ensemble de fichiers. Cet attribut est généralement utilisé pour les fichiers dits « cooked files », les fichiers dans lesquels les serveurs de bases de données stockent leurs informations. Ainsi, on contourne l'ensemble des deux systèmes de cache des pilotes du noyau et le cache de la base de données, optimisé, écrit directement sur le disque. « T » : l'attribut « T » n'est disponible qu'à partir des noyaux 2.6.x. Son but est d'indiquer le sommet de la hiérarchie, fonctionnalité utilisée par l'algorithme « Orlov block allocator ». Les nouvelles règles d'allocation de fichiers sur les systèmes de fichiers ext2 et ext3 rapprochent les sous-répertoires de façon à accélérer les accès sur une arborescence, si l'arborescence a été créée avec un noyau 2.6. « t » : le dernier bloc d'un fichier avec l'attribut « t » ne pourra pas être partagé avec d'autres fichiers (pour les systèmes de fichiers qui gèrent le « tail-merging »). C'est nécessaire pour des applications comme LILO qui accèdent directement au système de fichier et qui ne sont pas capables d'interpréter les blocs partagés. Note : au moment de l'écriture de la documentation, ext2 et ext3 ne font pas, en dehors de rustines très expérimentales, de « tail-merging ». « u » : lorsqu'on supprime un fichier ayant l'attribut "u", son contenu est sauvegardé. Ainsi, l'utilisateur peut demander sa récupération. Encore un attribut qui est géré par tout sauf le noyau. Exemple : # lsattr testfile
------------- testfile
# chattr +i testfile
# lsattr testfile
----i-------- testfile
# rm -f testfile
rm: cannot remove `testfile': Operation not permitted
# chattr -i testfile
# ls testfile
ls: testfile: No such file or directory
Oui ou Non Le répertoire /usr doit toujours se trouver sur la partition racine puisqu'il contient des données essentielles au démarrage Il est possible que certaines opérations ne fonctionnent pas si le répertoire personnel d'un utilisateur se trouve ailleurs que dans /home La création d'un système de fichiers sur une partitin détruit toujours toutes les données de cette partition Voir les réponses Glossaire
Sous-répertoires se trouvant directement sous la racine
Bloc de données
Bloc utilisé pour stocker les données sur le système de fichiers. Ils sont référencés par les inodes
Sous-répertoires de la racine essentiels
Répertoires devant se trouver sur le système de fichiers racine pour le démarrage du système
Second extended file system : système de fichiers par défaut sur Linux (NdT : aujourd'hui remplacé par Ext3 puis Ext4)
Third extended filesystem : évolution de ext2 avec les mêmes fonctionnalités plus un système de journalisation
Attributs stockés dans l'inode du fichier pour les droits en lecture, écriture et exécution attribués au propriétaire (u), au groupe (g) ou aux autres (o) ainsi que des permissions plus avancées comme le SUID, le SGID et le "sticky bit"
Filesystem Hierarchy Standard (« norme de la hiérarchie des systèmes de fichiers »). Ce standard consiste en un ensemble de règles et de recommandations pour le placement des fichiers et des répertoires sur les systèmes de la famille UNIX. L'objectif de ces règles est d'améliorer l'interopérabilité des applications, outils d'administration ou de développement, et des scripts, ainsi que d'uniformiser la documentation sur ces systèmes. Voir http://www.pathname.com/fhs/
Inode
Bloc utilisé pour stocker les informations sur les fichiers, répertoires et les liens symboliques. La localisation des données des fichiers, les permissions, l'horodatage et le type de fichier (répertoire, fichier ou lien symbolique) se trouvent dans l'inode.
Orlov block allocator
Algorithme qui améliore les performances des systèmes de fichiers EXT2/EXT3. Disponible uniquement sur les noyaux 2.6. Cette fonctionnalité a été portée de BSD puis améliorée par Alexander Viro, Andrew Morton, et Ted Ts'o. Son auteur originel est Grigory Orlov. Cette fonctionnalité peut être activée avec la commande chattr sous Linux
Superbloc
Le superbloc est lu au montage du système de fichiers. Il contient différentes informations comme la taille des blocs du système de fichiers (1024 par défaut), le nombre d'inodes libres, le nombre de montage et le nombre maximum de montages utilisés pour déterminer si une vérification du système de fichiers doit être lancée Fichiers
/etc/mtab
Fichier utilisé par mount pour conserver la trace des périphériques montés
/proc/mounts
Fichier utilisé par le noyau pour conserver la trace des périphériques montés
Description (apropos)
Modifier les attributs des fichiers d'un système de fichiers Linux
Changer le groupe propriétaire d'un fichier
Changer les permissions d'un fichier
Modifier le propriétaire et le groupe d'un fichier
Indiquer l'espace occupé par les systèmes de fichiers
Évaluer l'espace disque occupé par des fichiers
Vérifier un système de fichiers Linux ext2/ext3/ext4
Vérifier et réparer un système de fichiers Linux
Afficher les attributs des fichiers sur une partition Linux de type ext2
Créer un système de fichiers ext2/ext3/ext4
Créer un système de fichiers Linux
Tous les fichiers accessibles sur un système de fichiers Unix sont rangés sur une arborescence unique, la hiérarchie des fichiers dont la racine est /. Ces fichiers peuvent être répartis sur différents périphériques. La commande mount est utilisée pour attacher le système de fichiers d'un périphérique sur l'arborescence. À l'inverse, la commande umount détache ce système de fichiers de l'arborescence
Outil utilisé pour configurer le masque de création de mode de fichier - voir help umask Travaux pratiques
Créez deux nouvelles partitions de plus de 50 Mo sur /dev/hda (ou /dev/sda) en utilisant fdisk. Conseils : Pour créer une nouvelle partition, tapez n. Le type de partition par défaut est 83 (Linux) Pour écrire la table des partitions, tapez w. Le système doit lire votre nouvelle partition : redémarrez votre ordinateur ! Formatez la première partition en ext2 et la seconde en reiserfs. Conseil : Le programme mkfs est une interface à mkfs.ext2 ou mkfs.reiserfs, etc. Sa syntaxe est : mkfs –t &lt;type_de_système&gt; &lt;périphérique&gt;Créez deux répertoires dans /mnt et montez vos deux partitions mkdir /mnt/ext2
mkdir /mnt/reiserfsVérifiez l'état de votre système : Utilisez mount pour lister les périphériques montés. Les permissions configurés dans fstab sont également visibles. Utilisez df pour voir le nombre total de blocs utilisés. L'option -k converti le nombre de blocs en kilo-octets (taille par défaut pour un bloc sur ext2) Lancez fsck sur l'un des deux systèmes de fichiers créés. Le programme fsck est une interface à fsck.ext2, fsck.ext3, fsck.reiserfs, etc. Sa syntaxe est : fsck &lt;périphérique&gt;Aller plus loin : passer de ext2 à ext3 Passez le périphérique monté sur /mnt/ext2 en ext3 avec tune2fs, qui ajoutera un journal au système de fichiers existant. Assurez-vous d'adapter votre fichier /etc/fstab pour prendre en compte cette modification. tune2fs –j /dev/hdaNÀ ce stade, le système a ajouté un journal à la partition /dev/hdan, qui est devenue une partition ext3. Ce procédé est non-destructif et réversible. Si vous montez un système de fichiers ext3 en ext2, le fichier .journal est écrasé. Vous pouvez le recréer avec tune2fs. Permissions sur les fichiers
Connectez vous en utilisateur normal (pas root). Créez un fichier en utilisant touch et vérifiez que les permissions effectives sur ce fichier sont 664. Changez le umask en 027. Si vous créez un nouveau fichier, quelles seront les permissions effectives sur ce fichier ? Où configure-t-on la valeur du umask ? Suivant les systèmes, ce sera dans /etc/profile ou /etc/bashrc. Créez deux utilisateurs : useradd util1
useradd util2Initialisez leurs mots de passe avec passwd util1 et passwd util2 Créez le groupe ventes groupadd ventesAjoutez les utilisateurs au groupe ventes gpasswd -a util1 ventes
gpasswd -a util2 ventesCréez un répertoire /news avec comme groupe propriétaire ventes et en lecture/écriture pour ce groupe. mkdir -m 770 /news ; chown .ventes /newsPlacez le GID sur le répertoire /news chmod g+s /newsQuelles sont les permissions symboliques (-rwxr-xr-x) sur /news ? (Utilisez ls -ld /news) Vérifiez qu'un membre du groupe ventes n'a pas besoin de taper "newgrp ventes" pour créer des fichiers avec les bonnes permissions. Les membres du groupe ventes peuvent-ils modifier n'importe quel fichier de ce répertoire ? Ajoutez le sticky-bit sur /news. Vérifiez que seuls les propriétaires peuvent modifier leurs fichiers dans ce répertoire. Comment se présentent les permissions dans /news ? En tant que root, placez le SUID root sur xeyes. Connectez-vous en utilisateur normal et vérifiez que le programme est lancé par le root. chmod u+s `which xeyes`Connectez-vous en utilisateur normal et lancez xeyes, puis : ps aux | grep xeyesLe programme devrait être lancé par root. Réponses aux questions
Non : aucun programme placé dans /usr n'est nécessaire au démarrage du système Non : on peut placer le répertoire personnel d'un utilisateur n'importe où sur le système Oui Page consultée 82 fois