• Aucun résultat trouvé

ADMINISTRATION DES SYSTÈMES DE FICHIERS

Dans le document Td corrigé UNIX - Free pdf (Page 159-170)

7.1 CRÉATION DES SYSTÈMES DE FICHIERS 7.1.1 Partitionnement du disque

Après reconnaissance par le "bios" de la station, le disque doit être reconnu, puis éventuellement initialisé (formatage de bas niveau-low level format).

Le disque est ensuite partitionné par des utilitaires spécifiques à chaque constructeur.

Exemple

Linux fdisk

HP-UX mediainit

SUN-Solaris format

SCO divvy

7.1.2 Gestion des systèmes de fichiers

mkfs

La commande mkfs crée un système de fichiers. Sur les versions BSD, elle peut-être remplacée par la commande newfs.

fsck

La commande fsck permet de vérifier la cohérence d'un système de fichiers. Elle opère en cinq phases :

 phase 1 : vérification des inodes,

 phase 2 : recherche des répertoires pointant sur des inodes défectueux détectés en phase 1,

 phase 3 : recherche de répertoires non référencés,

 phase 4 : recherche de fichiers non référencés, du nombre erroné de liens matériels, des blocs défectueux ou dupliqués et du nombre incorrect d'inodes,

 phase 5 : recherche des blocs défectueux, dupliqués, inutilisés ou en nombre incorrect dans la liste des blocs libres.

En outre, deux phases (non systématiques) peuvent s'exécuter :

 phase 1B : répétition de la phase 1 en cas de blocs dupliqués,

 phase 6 : correction des problèmes rencontrés en phase 5.

158

Quand tout semble correct, la commande fsck affiche les différentes phases et le nombre de fichiers, le nombre de blocs occupés et le nombre de blocs libres.

La commande fsck corrige automatiquement certaines erreurs (les fichiers vides non référencés sont détruits ...) et interroge l'opérateur pour les autres (clear pour détruire un fichier à problème, reconnect pour sauvegarder l'information sous le répertoire lost+found avec comme nom le numéro d'inode ...).

Lorsque qu'un système de fichiers a été modifié , son image dans le cache disque est incorrecte. Le message "Boot UNIX (No Sync!)" est affiché, signifiant qu'il faut réinitialiser le système sans exécution de la commande sync car il y aurait alors recopie de l'information erronée sur le disque.

Un système de fichiers retrouve sa cohérence après l'exécution d'une commande fsck. Toutefois, il peut y avoir une perte d'information. L'administrateur doit la récupérer soit depuis une sauvegarde, soit à partir du répertoire lost+found.

Il est judicieux d'exécuter la commande fsck lors de chaque démarrage du système, même si cette opération peut devenir longue quand la taille des disques est importantes. De plus en plus, cette commande ne s'exécute qu'en cas d'arrêt incorrect du système, suite par exemple à un plantage. Le mécanisme de base est le suivant :

 création d'un fichier particulier lors de l'arrêt normal du système,

 vérification au démarrage de la présence de ce fichier, suppression de ce dernier si oui, exécution de fsck sinon.

Montage dans l'arborescence

La commande mount assure le montage d'un système de fichiers dans un répertoire de l'arborescence. Elle est utilisée lors de l'initialisation pour raccorder les différentes partitions, et peut être utilisée à tout instant pour accéder à une information présente sur un support amovible non utilisé en temps normal.

Exemple: montage d'une disquette dans l'arborescence.

La disquette doit être préalablement formatée. Le répertoire /mnt est ensuite utilisé de la façon suivante:

mount /dev/fd0135 /mnt [option(s) éventuelle(s)]

où le fichier /dev/fd0135 est le fichier spécial associé au lecteur de disquettes.

Le montage d'un système de fichiers sur un répertoire non vide rend son contenu inaccessible et invisible, ce qui peut permettre de cacher certains fichiers

La liste des systèmes de fichiers montés à un instant donné est accessible dans le fichier /etc/mnttab (ou /etc/mtab). Une autre possibilité est l'utilisation de la commande mount sans argument.

La commande mount fonctionne dans un environnement réseau. Il est alors possible, grâce au protocole NFS de monter des système de fichiers distants, quelque soit leur type (BSD, SYSTEM V, OSF,...

Démontage

La commande umount permet de détacher un système de fichiers de l'arborescence en le rendant inaccessible. Elle ne peut s'exécuter que si aucun fichier de ce système de fichiers n'est utilisé. Sinon, le message device busy est envoyé.

159

7.1.3 Autres commandes

icheck

Cette commande permet d'établir la correspondance entre le numéro de bloc sur le disque et son numéro d'inode.

ncheck

Cette commande permet d'établir la correspondance entre le numéro d'inode et le nom du fichier.

fsdb

La commande fsdb permet d'examiner et de corriger un système de fichiers après un incident.

bdblk

La commande bdblk permet de modifier des blocs erronés.

df

La commande affiche la liste des blocs ou des inodes libres.

ff

La commande affiche la liste des noms de fichiers et des attributs d'un système de fichiers.

labelit attribue un nom de système de fichiers et de volume à une partition) ...

clri

nettoyage direct de l'inode sur le disque (dangereux).

7.2 LA COMMANDE /ETC/MOUNT

La commande mount est utilisée pour permettre, à partir des différents systèmes de fichiers, de constituer l'arborescence des fichiers du systèmes. Elle assure le montage d'un système de fichiers dans un répertoire de l'arborescence. Elle est utilisée lors de l'initialisation pour raccorder les disques virtuels, et peut servir à tout instant pour accéder à une information présente sur un support amovible non utilisé en temps normal.

Synopsis

mount [-r][-f[NFS]][rhost:]système_de_fichier repertoire_de_montage

7.3 OPTIONS DE SÉCURITÉ DE LA COMMANDE MOUNT

Les systèmes de fichiers à monter au démarrage de la station sont définis dans le fichier /etc/vfstab (BSD), ou /etc/default/filesys (SYSTEM V).

160

Le fichier /etc/fstab Le format d'une ligne est :

système_de_fichiers point_local_de_montage options, type

 Le champ système_de_fichier est le nom complet du système de fichiers.

 Le champ point_local_de_montage est le nom du répertoire associé (existant). Le mot clé swap indique une zone de swap.

 Le champ type indique le type du système de fichiers. Celui qui est supporté peut être quelconque (AFS, FFS, UFS, 4.2) selon les implémentations.

 Pour une zone de swap, il faut utiliser le mot clé ignore.

 Il est possible d'accéder à n'importe quel type de système de fichiers par le protocole NFS.

 Le champ options indique le type de montage qui peut être rw (read, write) ou ro (lecture seule). Le mot clé complémentaire quota permet de définir des systèmes de fichiers avec quota.

 Quoique le fichier /etc/fstab soit utilisé seulement pour le montage des systèmes de fichiers, c'est une bonne pratique que de lister l'ensemble des partitions qui sont utilisées.

 Le fichier /etc/fstab est éditable manuellement.

Exemple1 (BSD)

/dev/dsk/c2d0s0 / 4.2 rw /dev/dsk/c2d0s1 swap ignore . /dev/dsk/c2d1s0 /usr 4.2 rw /dev/dsk/c2d1s1 swap ignore . /dev/dsk/c2d1s2 /home 4.2 rw /dev/dsk/c2d2s6 /tmp 4.2 rw cactus:/usr3 /unix3 NFS,soft antinea:/usr2 /unix2 NFS,soft

Le fichier /etc/mntab (SYSTEM V) ou /etc/mtab (BSD) contient la liste des systèmes de fichiers montés à un instant donné. Son contenu évolue dynamiquement.

Exemple 2 : montage d'une disquette dans l'arborescence.

La disquette doit être préalablement formatée. Le répertoire /mnt est ensuite utilisé de la façon suivante:

/etc/mount /dev/fd0135 /mnt

où le fichier spécial /dev/fd0135 est associé au lecteur de disquettes.

Extension à l'environnement réseau

La commande mount fonctionne dans un environnement réseau. Il est alors possible, grâce au protocole NFS de monter des système de fichiers distants, quelque soit leur type (BSD, SYSTEM V, LSF),...

Autres commandes de montage

La commande /etc/mountall (SYSTEM V) permet de monter l'ensemble des systèmes de fichiers du fichier /etc/vfstab. Son équivalent BSD est la commande mount -a.

161

7.4 TABLE DES SYSTÈMES DE FICHIERS MONTÉS

La liste des systèmes de fichiers montés à un instant donné est accessible dans le fichier /etc/mnttab (ou /etc/mtab).

L'exécution de la commande mount, sans argument, affiche les systèmes de fichiers montés. Le champ System indique si le système de fichier est local ou distant.

Exemple

System Device name Mount Directory Description [local] /dev/dsk/c2d0s0 /

[local] /dev/dsk/c2d0s2 /usr [local] /dev/dsk/c2d1s0 /tmp

[local] /dev/dsk/c2d1s2 /home user home directories

7.5 DROIT D'EXÉCUTION DE LA COMMANDE MOUNT

Un utilisateur ayant le droit d'exécution de la commande /etc/mount pourrait faire des montages de systèmes de fichiers distants. Certaines options permettent même le montage de fichiers avec le bits avec conservation de leurs privilèges. Un utilisateur peu scrupuleux pourrait alors exécuter localement des shell-scripts avec les droits des administrateurs distants.

7.6 POINTS DE MONTAGE

Un montage sur un répertoire non vide cache la sous-arborescence qui réapparaît après démontage. C'est donc un excellent moyen d'avoir des fichiers cachés. C'est aussi une autre raison d'interdire l'utilisation de la commande mount à n'importe quel utilisateur.

7.7 STRATÉGIE DE MONTAGE DES SYSTÈMES DE FICHIERS

Le droit d'écriture ou lecture sur les système de fichiers est déterminé au montage.

En mode lecture, toute écriture est interdite, quels que soient les droits des fichiers ou des répertoires qui y sont contenus. Il faut toujours redémarrer le poste de travail, après avoir modifié la table des systèmes de fichiers, pour pouvoir remonter un fichier en écriture. C'est donc une protection absolue très contraignante. Il convient, au moment de la génération système, de réfléchir soigneusement au type de montage des systèmes de fichiers en fonction des fichiers qui y sont contenus.

7.8 DÉMONTAGE

 La commande umount permet de démonter un système de fichiers de l'arborescence en le rendant inaccessible aux utilisateurs.

 Il est impossible de démonter un système de fichiers en cours d'utilisation. Dans ce cas, le message device busy est envoyé. Il faut donc s'assurer qu'aucun utilisateur ne travaille avant d'essayer un démontage. Par exemple, la commande ps permet de connaître la liste des utilisateurs actifs.

 Un système de fichiers démonté n'apparaît plus dans l'arborescence.

Remarque

 Le système de fichier root ne peut jamais être démonté.

162

 Le système de fichiers associé au répertoire /usr ne peut être démonté qu'en mode mono-utilisateur.

7.9 COHÉRENCE DES SYSTÈMES DE FICHIERS

La cohérence des systèmes de fichiers est essentielle au bon fonctionnement du système. Elle doit être contrôlée périodiquement.

7.9.1 Généralités sur la commande fsck

Principe

La commande fsck permet de vérifier la cohérence d'un système de fichiers. Elle doit être exécutée systématiquement au démarrage ou elle est utilisable manuellement, sur un système de fichier démonté, en mode raw.

Il ne faut en aucun cas supprimer son exécution pour "gagner du temps" faute de quoi le système devient rapidement irrécupérable en cas de crash.

Les inconsistances détectées par la commande fsck sont les suivantes :

 blocs associés à plusieurs inodes dans la liste des blocs libres,

 bloc associé par un inode disponible accessible hors du système de fichiers,

 nombre de liens matériel incorrect,

 contrôles de la taille : nombre de blocs incorrect, taille de répertoire incorrecte

 mauvais format d'inode,

 blocs perdu,

 contrôle de répertoires : fichiers pointant sur un inode non alloué, nombre de blocs alloués supérieur au nombre de blocs disponibles,

 mauvais format de la liste de blocs disponibles,

 nombre total de bloc libres et compte d'inodes non alloué incorrect.

Durée

Sur les systèmes de fichiers traditionnels, sa durée d'exécution est longue. Sur les nouveaux types de systèmes de fichiers, par exemple Veritas, elle est d'exécution instantanée.

Démarrage

Il est judicieux d'exécuter la commande fsck lors de chaque démarrage du système, même si cette opération peut devenir longue quand la taille des disques est importantes. Sur de nombreux systèmes, elle ne s'exécute au démarrage qu'en cas d'arrêt incorrect (système dirty). Le mécanisme de base est le suivant :

 création d'un fichier lors de l'arrêt normal du système,

 vérification au démarrage de la présence de ce dernier, suppression si oui, exécution de la commande fsck sinon.

163

La liste des systèmes de fichiers à contrôler au démarrage est définie dans le fichier /etc/default/checklist (SYSTEM V), ou /etc/vfstab (BSD).

Exécution manuelle ou automatique

Même dans le cas ou le système est toujours arrêté correctement, sans exécution automatique de la commande fsck, une exécution périodique est fortement recommandée car sinon, les incohérences éventuelles sur les systèmes de fichiers ne sont pas détectées.

7.9.2 Mode opératoire

La commande fsck opère en six phases :

Phase d'initialisation de la commande

Cette phase contrôle les options de la commande et contrôle la validité du super bloc par comparaison de la liste des inodes avec la taille du système de fichiers. Si la taille de la liste des inodes est supérieure à celle du système de fichiers, le super bloc doit être modifié. La commande fsck fera une requête pour une adresse alternative (fsck -A bloc).

Phase 1 : contrôle de la taille des blocs et des inodes

Ces contrôles sont effectués pour les types de fichiers, leur taille, le nombre de liens matériels, les adresses des blocs, ainsi que la liste des inodes. La commande fsck -p permet de fixer un nombre de blocs incorrect.

Phase 1B

Quand un bloc dupliqué est trouvé, le système de fichiers est à nouveau analysé pour retrouver l'inode correspondant.

Phase 2 : Contrôle des chemins d'accès et recherche des répertoires non référencés

Les entrées des répertoires pointant sur des inodes défectueuses détectées dans les phases 1 et 1B sont supprimées.

Phase 3 : contrôle de la connectivité des répertoires non référencés

Si l'inode associée à un sous-répertoire d'un répertoire n'existe pas, elle peut être crée, éventuellement dans le répertoire lost+found, par la commande newfs.

Phase 4 : contrôle du nombre de liens matériels

Recherche de fichiers non référencés, du nombre erroné de liens matériels, des blocs défectueux ou dupliqués et du nombre incorrect d'inodes. Les compteurs de contrôle des références permettent la correction de problèmes associés à un nombre de liens matériels incorrect, détectés dans les phases précédentes.

Phase 5 : contrôle de la free-liste

Recherche des blocs défectueux, dupliqués, inutilisés ou en nombre incorrect dans la liste des blocs libres. Tout bloc ou fragment doit être alloué ou dans la liste des blocs disponibles.

164

Phase 6 : reconstruction éventuelle de la free-liste

Quand tout semble correct, la commande fsck affiche les différentes phases et le nombre de fichiers, le nombre de blocs occupés et le nombre de blocs libres. Elle corrige automatiquement certaines erreurs (les fichiers vides non référencés sont détruits ...) et interroge l'opérateur pour les autres (clear pour détruire un fichier à problème, reconnect pour sauvegarder l'information dans le répertoire lost+found du système de fichiers avec comme nom le numéro d'inode ...).

Lorsque qu'un système de fichiers a été modifié , son image dans le cache disque est incorrecte. Le message "Boot UNIX (No Sync!)" est affiché, indiquant qu'il faut réinitialiser le système sans exécution de la commande sync car il y aurait alors recopie de l'information erronée sur le disque.

Cohérence et tolérance de pannes

Un système de fichiers retrouve sa cohérence après l'exécution d'une commande fsck. Toutefois, il peut y avoir une perte d'informations que l'on peut éventuellement récupérer soit depuis une sauvegarde, soit à partir du répertoire lost+found associé au système de fichiers.

7.9.3 Utilisation de la commande fsck

Synopsis

fsck [-option(s)] système_de_fichiers_en_mode_raw

Quelques options

 y suppose une réponse positive à toutes les questions posées par fsck

 n suppose une réponse négative à toutes les questions posées par fsck

 q option silencieuse

 D contrôle des répertoires (à utiliser après un crash)

 f contrôle rapide. La phase 6 est exécutée si nécessaire seulement.

Exemple

fsck -y /dev/rroot

7.10 QUOTA D'OCCUPATION DES SYSTÈMES DE FICHIERS

Le comportement global du système se détériore dès qu'un système de fichier est plein. Il faut donc disposer d'espace disque important (UNIX est gros consommateur) et surveiller souvent l'état des systèmes de fichiers système (dans /var/adm en particulier).

Gestion des quotas utilisateur

L'expérience montre qu'il peut être judicieux d'imposer des quota raisonnables aux utilisateurs.

Sous UNIX, il est possible de définir des quota par utilisateur (place disque en nombre de blocs et nombre maximal de fichiers) sur les version UNIX BSD et SYSTEM V Release 4. Chaque limite est définie par deux paramètres :

 la limite dure (hard limit) est la limite absolue qu'il est impossible de dépasser,

165

 la limite douce (soft limit), à partir de laquelle des messages sont émis par le noyau pour prévenir l'utilisateur qu'il va atteindre ou dépasser la limite dure.

Un utilisateur peut dépasser sa limite douce en cours de session.

Il est fortement recommandé de les utiliser pour contrôler en permanence l'évolution de l'utilisation des systèmes de fichiers.

Le système de quota s'installe préalablement sur un système de fichiers. Il est donc possible sur un même système de définir des systèmes de fichiers avec ou sans quota.

Cette installation se réalise en cinq étapes.

Modification éventuelle du noyau

Une modification du noyau peut être nécessaire par l'installation de l'option QUOTA sur les versions BSD au moment de la génération du noyau.

Définition des systèmes de fichiers avec quota

Il faut déterminer les systèmes de fichiers sur lesquels l'administrateur souhaite installer des quota par une modification de l'entrée du système de fichiers concerné dans le fichier vfstab (option quota ou noquota).

Fichier quota

Il faut créer un fichier quota sur chacun des systèmes de fichiers concernés par exemple par la commande cp /dev/null quota.

Utilisateur avec quota

Le fichier quota est modifié lors de la définition des utilisateurs avec des quota avec la commande edquota.

Démarrage et arrêt du système de gestion des quota Deux commandes sont disponibles :

 démarrage des quota (commande quotaon),

 arrêt des quota (commande quotaoff).

Contrôle du système de quota

Le contrôle du système de quota est assuré par la commande quotacheck.

Installation permanente

Il faut faire une modification des fichiers de démarrage pour l'initialisation des quota de la façon suivante :

#contrôle des quota

echo -n 'checking quotas : ' > /dev/console /etc/quotacheck -a -p > /dev/console 2 > &1

166

echo 'done.' > /dev/console

#mise en route des quotas /etc/quotaon -a

7.11 SÉCURITÉ ET GESTION DES ZONES DE SWAP

Addition d'une zone de swap

La commande swap -a est utilisée dans le fichier /etc/swap. Le nombre indiqué à la fin de la commande indique la longueur de la zone de swap. Le nombre 0 indique la partition entière.

L'ajout d'une zone de swap peut s'effectuer dynamiquement (commande BSD mkfile). Il est recommandé de l'installer sur un autre disque. Pour l'installer, il faut :

 éventuellement modifier le noyau (selon les implémentations),

 créer la zone de swap en utilisant la commande mkfile,

 activer la zone en utilisant ma commande swapon. Il est possible de la désactiver en utilisant la commande swapoff

Etat d'une zone de swap

 La commande swap -l permet de connaître l'état ainsi que la taille des zones de swap actives.

 La commande sar -r affiche les statistiques d'utilisation d'utilisation des zones de swap (espace utilisé et disponible).

Taille d'une zone de swap

Elle est de l'ordre de 200 à 600 Moctets selon la charge et la configuration du système.

7.12 EXERCICES SUR LA GESTION DU SGF 7.12.1 Montage

1°) Analyser le fichier des description des système des fichiers à monter sur votre système. Analyser en détail les attributs de sécurité (ro, rw, bit s, etc.).

2°) Vous n'êtes pas root. Essayer de démonter ou de monter des systèmes de fichiers au hasard. Idem si vous êtes root.

7.12.2 Commande fsck et mkfs

1°) Vous n'êtes pas root. Essayer d'utiliser fsck sur un système de fichiers au hasard, avec le système de fichier monté ou démonté.

2°) Idem quand vous êtes root.

3°) Idem avec la commande mkfs (faîtes tout de même attention à votre système…).

167

7.12.3 Gestion des périphériques et pseudo-périphériques

 visualiser les systèmes de fichiers "montés" (commande /etc/mount).

 visualiser les fichiers de paramètrages, par exemple /etc/vfstab, /etc/checklist, /etc/ttys, /etc/gettytab et

 visualiser les fichiers de paramètrages, par exemple /etc/vfstab, /etc/checklist, /etc/ttys, /etc/gettytab et

Dans le document Td corrigé UNIX - Free pdf (Page 159-170)