10 Corrigé du DS du 26 novembre 2003
Examen d'une durée de deux heures avec tous les documents autorisés
(y compris ordinateurs).
Le barême approximatif est de 10 points pour chaque exercice.
10.0.29 Systèmes de fichiers
Voici le résultat de deux commandes tapées sur le serveur douaisis :
$ cat /etc/fstab
/dev/hda1 / ext3 defaults,errors=remount-ro 0 1
/dev/hda5 /tmp ext3 rw 0 2
/dev/hda6 /var ext3 rw 0 2
/dev/var_spool/spool /var/spool ext3 rw 0 2
/dev/var_log/log /var/log ext3 defaults 0 2
/dev/sda1 /home ext2 rw,usrquota 0 2
/dev/sda2 /usr/local ext2 rw 0 2
/dev/hda2 none swap sw 0 0
/dev/hda7 /usr/src ext3 rw 0 2
/dev/fd0 /floppy auto defaults,user,noauto 0 0
proc /proc proc defaults 0 0
/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0
et
# vgdisplay -v
Finding all volume groups
Finding volume group "var_log"
--- Volume group ---
VG Name var_log
...
VG Size 8.50 GB
PE Size 32.00 MB
Total PE 272
Alloc PE / Size 272 / 8.50 GB
Free PE / Size 0 / 0
VG UUID NGtqE4-VXI9-6NWb-9ihz-v1AP-q6Gw-wupRy6
--- Logical volume ---
LV Name /dev/var_log/log
VG Name var_log
...
LV Size 8.50 GB
...
--- Physical volumes ---
PV Name /dev/sdc1
PV UUID ccgeEP-NmAA-5jQO-lnz4-G36b-GQmM-jRarm3
PV Status allocatable
Total PE / Free PE 272 / 0
Finding volume group "var_spool"
--- Volume group ---
VG Name var_spool
...
VG Size 17.03 GB
PE Size 32.00 MB
Total PE 545
Alloc PE / Size 545 / 17.03 GB
Free PE / Size 0 / 0
VG UUID PuH5Mm-VD3f-vBoY-V5qG-Qmpk-m5Xi-X2Tle8
--- Logical volume ---
LV Name /dev/var_spool/spool
VG Name var_spool
...
LV Size 17.03 GB
...
--- Physical volumes ---
PV Name /dev/sdb1
PV UUID V7eBG0-LZpi-LZBX-CUQ0-FgVQ-3JzS-kLX3gj
PV Status allocatable
Total PE / Free PE 545 / 0
Avec ces données répondez aux questions suivantes :
-
Donnez la liste des systèmes de fichiers qui seront vérifiés au
démarrage du serveur douaisis, et l'ordre dans lequel cela sera
effectué.
Il suffit de regarder les lignes de /etc/fstab avec un chiffre
différent de zéro en dernière colonne. On trouve /, /tmp,
/var, /var/spool, /var/log, /home, /usr/local,
et /usr/src. Le système de fichiers racine sera vérifié en premier,
suivi de tous les autres dans un ordre indeterminé.
- Si le serveur est arrêté brutalement (par exemple suite à une
coupure de courant), les systèmes de fichiers seront vérifiés. Indiquez
lesquels le seront assez rapidement et lesquels le seront au bout d'un
temps non négligeable. Pourquoi ?
Tous les systèmes de fichiers à vérifier sont de type ext3 sauf
/home et /usr/local qui sont encore en ext2. Le premier
type représente un système de fichiers journalisé avec une vérification
rapide au démarrage et le second un système de fichiers traditionnel
nécessitant une vérification totale de la cohérence du système.
Tous les systèmes de fichiers seront donc rapidement vérifiés et
réparés sauf /home et /usr/local qui ne le seront qu'après
une vérification exhaustive. Par ailleurs /home est un
système de fichiers avec gestion de quotas,
le système va mettre ces quotas à jour au
démarrage, cela peut prendre un certain temps ...
- Que signifie l'option de montage du système de fichiers / ?
L'option errors=remount-ro signifie qu'il faut remonter la racine
en lecture seule si l'on détecte une erreur sur le système de fichiers
(il peut s'agir d'une erreur sur un bloc du disque /dev/hda1 ou
d'une incohérence dans le système de fichiers). Cela permet de ne pas
complétement détruire le système de fichiers en propageant des valeurs
incorrectes.
- On laisse la possibilité à un utilisateur de monter le système de
fichiers d'une disquette avec le choix du type de système de fichiers.
Un utilisateur
ne pourrait-il pas en profiter pour exécuter un programme en mode suid
pour l'utilisateur root ?
Pas sur un système Linux en tout cas, car sur un tel système d'exploitation,
l'option user implique les options noexec, nosuid et
nodev qui empêchent (à priori) toute tentative d'usurpation de droits.
- Que se passerait-il si on enlevait l'option ro sur la dernière
ligne du fichier /etc/fstab ?
C'est utile pour graver un CD-ROM ? Noooooooon !! Ca ne ferait pas grand
chose le cdrom serait quand même monté en lecture seule. Ca supprime
juste l'affichage d'un message d'avertissement indiquant que le système
de fichiers ne peut être monté qu'en lecture seule.
- Combien de groupes de volumes sont utilisés sur douaisis ?
Combien de partitions physiques par groupe de volumes ? Combien de
partitions virtuelles par groupe de volumes ?
On trouve deux groupes de volumes sur douaisis : var_log
et var_spool. Chacun utilise une partition physique /dev/sdc1
et /dev/sdb1. Chacun sert de support à une partition virtuelle
/dev/var_log/log et /dev/var_spool/spool.
- Pouvez-vous intuiter si les groupes de volumes utilisent des
disques entiers ou seulement des portions de disques ? Qu'aurait-on
du faire pour que les choses soient bien claires ?
On ne trouve pas de trace d'autre partition de /dev/sdb ou
de /dev/sdc dans le fichier /etc/fstab. Il y a donc
donc fort à parier que les disques entiers soient utilisés par
les groupes de volumes. Si c'est bien le cas, il aurait été plus
clair d'utiliser directement /dev/sdb et /dev/sdc comme
PVs (physical volumes).
- Dites sur quelles partitions sont stockés les fichiers suivants :
/var/run/apache.pid
/var/log/syslog
/var/spool/cyrus/mail/r/user/rex/24.
Le premier fichier est directement stocké sur la partition /dev/hda6,
le second, via le groupe de volumes var_log, se retrouve sur
/dev/sdc1 et le dernier, via le groupe var_spool, sur
/dev/sdb1.
- La machine douaisis comportait initialement 4 disques
SCSI appelés sda, sdb, sdc et sdd par le
système d'exploitation. Le nommage se fait en utilisant l'ordre
des cartes SCSI sur le bus PCI puis l'ordre des identifiants de
disques sur les bus SCSI. Le disque système sdc tombait en panne et
a été remplacé par un disque IDE (hda). Le disque /dev/sdc
a été enlevé, donnez les correspondances entre les anciens et les nouveaux
noms des disques SCSI.
Vu le système de nommage, les disques sda et sdb n'ont
pas changé de nom par contre sdd s'est retrouvé sous le nom
sdc.
- Suite au changement de disque système, la seule modification
système a consisté à remplacer sdc par hda dans les fichiers
/etc/fstab et /etc/lilo.conf. Qu'est-ce que cela signifie
au niveau de la gestion des PV par LVM ?
Aucune modification n'a été effectuée sur le groupe de volumes var_log
bien que son PV ait changé de nom (passage de /dev/sdd1 à
/dev/sdc1). Cela signifie que LVM fait un parcours des partitions
physiques à chaque démarrage de la machine et reconnait ses PVs par
des identifiants stockés sur ces PVs et non pas par les noms donnés
par le système d'exploitation aux partitions et aux disques.
- On souhaite remplacer le disque /dev/sdc sur douaisis
par un nouveau disque (de taille supérieure) et dans le même temps ne
plus utiliser qu'un groupe de volumes sur cette machine. Donnez la marche
à suivre pour effectuer cette opération (allez jusqu'à donner les
éventuelles commandes à taper).
Il faut commencer par installer le nouveau disque (en le faisant apparaitre
comme /dev/sdd par exemple).
Le créer en tant que PV par la
commande
pvcreate /dev/sdd
L'ajouter au groupe de volume
var_spool par la commande
vgextend var_spool /dev/sdd
Créer une nouvelle partition virtuelle par
lvcreate -LxG -nlog var_spool
Formatter cette partition
par mkfs et rapatrier les données de
/dev/var_log/log en utilisant la commande tar ou
cp -ar. Il est alors possible de détruire le groupe de
volumes var_log (utilisation de lvremove, vgchange
et vgremove). Le nom du groupe étant désormais plutôt idiot
on le change en var par un
vgrename var_spool var
Enfin il faut modifier /etc/fstab en remplaçant
/dev/var_spool/spool par /dev/var/spool et
/dev/var_log/log par /dev/var/log.
10.0.30 Système de fichiers NFS
Voici un extrait du fichier /etc/exports du serveur hainaut :
/usr/local 172.26.16.0/255.255.240.0(sync,no_root_squash) \
172.26.32.0/255.255.240.0(sync,no_root_squash) \
193.48.64.0/255.255.255.0(sync,rw,no_root_squash)
Répondez aux questions suivantes :
-
Que signifie l'acronyme NFS ?
En version originale cela donne "Network File System" et en version
française quelque chose comme système de fichiers réseau.
- Quel est la fonction du fichier /etc/exports ?
Le fichier /etc/exports spécifie les répertoires à exporter
par NFS et les caractéristiques de l'exportation (en lecture,
en lecture écriture, pour une machine précise, pour un réseau IP
entier, etc.).
- Dites pourquoi les restrictions d'accès données dans le
fichier /etc/exports d'hainaut ne permettent pas d'assurer
totalement la confidentialité des données du répertoire /usr/local.
Les restrictions portent sur l'appartenance d'une machine à un réseau
IP (par exemple le réseau d'enseignement de l'école). Il est très facile
(si l'on a accès à une prise réseau située dans le VLAN hébergant le réseau
d'enseignement) de connecter une machine avec une adresse dans ce réseau
et donc d'avoir accès au répertoire /usr/local du serveur
hainaut.
- Quelle commande taper sous Unix pour monter le système de
fichier exporté par hainaut ?
La commande à taper est : mount -t nfs hainaut:/usr/local /mnt.
- On suppose que vous êtes administrateur sur la machine ayant
effectué le montage NFS. Pouvez-vous accéder directement aux fichiers
exportés par hainaut ?
Il est possible d'accéder directement aux fichiers importés
d'hainaut en tant que root, en effet l'option
no_root_squash étant spécifiée les utilisateurs root
distants se retrouvent avec les droits de root sur le système
de fichiers NFS. L'option par défaut est root_squash qui
restreint les administrateurs distants aux droits de nobody.
- Est-il possible d'écrire sur le système de fichiers exporté
par hainaut à partir de tous les réseaux précisés dans le fichier
/etc/exports ? Justifiez votre réponse.
Le système de fichiers est exporté en lecture et écriture uniquement
pour le réseau 193.48.64.0/255.255.255.0 (option rw, par
défaut l'option ro -- read only -- est utilisée). Donc seule
une machine de ce réseau va pouvoir modifier quelque chose dans
le répertoire /usr/local d'hainaut.