Le Système GNU/Linux
Master Professionnel en Logiciels Libres (MP2L) Pr. Habib SMEI E-Mail :[email protected] / [email protected]
1
Chapitre 5 Système de Gestion de Fichiers
2
Fichiers
Fichier = Objet typé sur lequel on peut appliquer des opérations Il a une signification plus large que celle connue usuellement (fichier disque).
Exemples : Fichier lecteur CD, Fichier imprimante, Fichier terminal, etc.
3
Fichiers
Le système GNU/Linux, attribue, pour chaque fichier, une
entrée appelée i-nœud (index node) dans une table
décrivant ses différentes propriétés.
Un fichier s'identifie, dans le système, au travers la
connaissance de l'identificateur de la table contenant ses
propriétés (appelée disque logique) et de l'indice dans
cette table de l'entrée contenant ces propriétés.
4
Système de Fichiers
C’est un ensemble de règles qui organisent la manière dont les
fichiers sont stockés et récupérés sur un disque dur ou sur
n’importe quel support de stockage. La disposition des
données sur un support est très structurée. Par exemple, on
part d’une racine qui abrite des répertoires qui, eux-mêmes
sont capables de contenir plusieurs niveaux de sous-
répertoires.
5
Partitionnement
– Le système GNU/Linux n'utilise pas une table de
fichiers mais plusieurs et chacune est relative à
une arborescence bien déterminée.
– L'accès à l'une des arborescences est possible
grâce au mécanisme de montage (mounting) : il
s'agit de créer un point d'accès à cette
arborescence à partir de la racine absolue du
système de fichiers.
6
Arborescence du système de fichiers
– La hiérarchie est normalisée
• Norme courante : FHS 2.2 (Filesystem Hierarchy
Standard). FHS 2.3 en cours … • http://www.pathname.com/fhs/
/
home
proc
usr
boot
lib
opt
dev
etc
var
Ftp … hb
bin lib man tmp
lib log run spool tmp
7
Les différents types de fichiers
1. Les fichiers réguliers
Fichiers disque, leur contenu n'est pas
nécessairement structuré : exécutables, programmes
en code source, données, etc.
2. Les fichiers répertoires
Ils permettent aux utilisateurs de désigner leurs
fichiers. Les répertoires suivants sont
particulièrement importants dans tout système
GNU/Linux:
8
Les différents types de fichiers
/bin et /usr/bin /dev /etc /home ou /users /tmp /boot /root /lib et /usr/lib
9
Les différents types de fichiers
3. Les fichiers spéciaux
Les fichiers spéciaux en mode bloc Comme les disques. Le transfert de données dans une opération d'entrée-sortie est réalisé par blocs (512 ou 1024 octets). Les fichiers spéciaux en mode caractère Comme les terminaux et les imprimantes. Ce type de périphériques transfère les données octet par octet et il n'y a pas d'utilisation de caches d'entrée-sortie.
10
Les différents types de fichiers
4. Les liens symboliques
Fichiers qui pointent sur d'autres fichiers (ou répertoires). Ces derniers peuvent exister ou non. Les liens symboliques et les fichiers (ou répertoires) peuvent appartenir, ou non, au même système de fichiers.
5. Les tubes nommés (fifo)
Permettent aux processus, n'ayant pas de liens de parenté, d'échanger des informations. (manipulés par des appels système open, read et write)
11
Les différents types de fichiers
6. Les sockets
Il s'agit d'objets permettant la communication
bidirectionnelle entre les processus. Les sockets permettent
aussi la communication entre des applications distantes
(applications réparties).
12
Notion d'i-nœud Un i-nœud contient, typiquement, les informations suivantes :
Le uid et le gid du fichier
Le type du fichier
Les droits d'accès des utilisateurs
La taille du fichier (en octets)
Le nombre de liens physiques sur le fichier
Les dates du dernier accès et de dernière
modification du fichier
L'adresse, sur disque, du fichier
13
Notion d'i-nœud
– Remarques importantes:
• Un i-nœud ne contient aucun nom pour le fichier
correspondant.
• Chaque utilisateur est caractérisé par un numéro
d'utilisateur et appartient à un groupe particulier (ou
à plusieurs). Pour tout fichier, GNU/Linux définit
trois classes d'utilisateurs: User (propriétaire) Group
(groupe auquel Є le propriétaire) et Others (autres
utilisateurs)
14
Commandes de base du système de gestion de fichiers
1. La commande pwd 2. La commande cd 3. La commande ls 4. La commande cat 5. La commande cp 6. La commande ln 7. La commande mv 8. La commande rm 9. la commande mkdir 10. La commande rmdir 11. La commande chmod 12. La commande umask
15
principaux répertoires du système
: Repertoire racine du système : Les commandes essentielles (binaires) : Contient les fichier du chargeur de boot (noyau vmlinuz, etc .) : Les fichiers de péripherique : Les fichiers de configuration du système : Les librairies essentielles et les modules du noyau : Point de montage pour montage temporaire de système de fichier : Lieu d'installation de logiciels additionnels : Les commande essentielle du système : Les données des services rendu par le système : Repertoire temporaire : Programmes accessibles à tout utilisateur : Pour les données variables : Système de fichier virtuel informations sur les processus et du
: Répertoire personnel des utilisateurs : Répertoire personnel du super Utilisateur
/ bin boot dev etc lib mnt opt sbin srv tmp usr var proc système home root
Permissions (droits d’accès)
Types d’utilisateurs
– Owner ( Propriétaire ) u
– Group g
– Others (Le reste du monde) o
Types de permissions
– Read ( Lecture ) r
– Write ( Ecriture ) w
– Execute ( Exécution ) x
17
Permissions (droits d’accès)
$ ls -l -rwxrwxrwx 1 user1 group 512 Mar 14 11:36 filename1
18
File TypeUser AccessGroup AccessOther AccessOctal4 2 14 2 14 2 1-r w xr w xr w xPosition12 3 45 6 78 9 10Read* * * Write * * * Execute * * *Permissions (droits d’accès)
Permissions sur les répertoires
– Read
- Lister le répertoire (ls).
– Write
- Possibilité d’exécuter les commandes
cp, mv, rm dans le répertoire
– Execute - Possibilité d’utiliser la commande cd
dans le répertoire
19
Commandes sur les droits
chmod
Access_String
file . . .
Change les permissions d’un fichier.
Exécutée uniquement par le propriétaire.
Méthode dite Access Strings :
Classe Combinaison de :
u g o a
Operateurs
+
+ Ajout de droits. - Retrait de droits. = Set (supprime anciens).
+
Type d’accès Combinaison de : r w x t s
20
Commandes sur les droits
$ chmod u=rwx,g=r,o-rwx filename1
$ chmod o+r filename1
$ chmod go+x filename1
21
Permissions par défaut
Quels sont les droits affectés à la création d'un fichier ou
d'un répertoire ?
La commande umask :
umask (pour afficher le masque)
umask Détermine le masque de permissions lors de la création de fichiers ou
[mode]
répertoires – mode détermine les restrictions – Au plus élevé est le mode, au plus restrictives seront les permissions.
umask –S (pour afficher le masque sous forme symbolique)
Publicité
umask valeur_masque (pour modifier le masque)
$ umask 026 $ umask 077
22
Permissions par défaut
Changer les droits d'accès (session en cours) : Les permissions des fichiers ordinaires correspondent à la valeur du masque sur laquelle est fait un ou exclusif (XOR) avec la valeur 666.
Les permissions des répertoires correspondent à la valeur du masque
sur laquelle est fait un OU exclusif (XOR) avec la valeur 777. Le masque donné à la commande umask précise les droits qui seront supprimés à la création du fichier. Par exemple avec :
umask 021 (en binaire 000 010 001)
un répertoire créé avec ce masque obtiendra les droits suivants :
111 101 110 soit u=rwx gx=r o=rw
23
Permissions par défaut
Changer les droits d'accès : La modification des droits à l'aide de la commande umask a des effets seulement durant la session en cours.
Pour rendre cette modification permanente, il faut
modifier le script :
/etc/profile (par root pour le profil général) $HOME/.bash_profile (par l'utilisateur pour son profil)
ou Fichier « /etc/login.defs » Modifier le paramètre UMAK
UMASK 027 (exemple)
24
Changement de propriétaire
chown
Change le propriétaire du fichier
chown
new_owner file(s) . . .
chgrp
Change le groupe du fichier
chgrp
new_group file(s) . . .
$ ls -l file1 -rwxr-xr-x 1 salah prog 512 Mar 14 11:36 file1 $ chgrp acct file1 $ chown hal file1 $ ls -l file1 -rwxr-xr-x 1 hal
acct 512 Mar 14 11:36 file1
25
Permissions (droits d’accès)
Les droits étendus
Le droit SUID Ce droit s'applique aux fichiers exécutables, il permet d'allouer temporairement à un utilisateur les droits du propriétaire du fichier, durant son exécution. Les utilisateurs exécutent des commandes qui écrivent dans des fichiers dont les droits sont en "lecture seule" ou "aucun". Par exemple : • La commande "cat /etc/shadow" exécutée par un
utilisateur entraînera un refus ("r - - - - - - - -").
• Par contre la commande /usr/bin/passwd permet à ce même utilisateur de modifier son mot de passe donc d'écrire dans le fichier /etc/shadow.
26
Permissions (droits d’accès)
Le droit SUID
- Les droits présentés par la commande
/usr/bin/passwd sont : r - s - - x - - x.
- L'utilisateur peut exécuter la commande ("x") mais il ne
peut pas écrire dans /etc/shadow
- Le "s" qui se superpose au droit "x" du propriétaire
root permet à l'utilisateur d’exécuter la commande avec
les droits du propriétaire root (le "s" ne supprime pas le
"x" qui est simplement caché).
27
Permissions (droits d’accès)
Positionner le droit SUID
La valeur en octal du droit SUID est 4000 (100 000 000 000).
Par exemple sur le fichier "commande" on souhaite
obtenir les droits : "r – s r – x - - -":
chmod 4550 commande
28
Permissions (droits d’accès)
Le droit SGID
Il donne à un utilisateur les droits du groupe auquel
appartient le propriétaire de l'exécutable et non plus les
droits du propriétaire de l’exécutable.
Ce droit a une tout autre utilisation s'il est appliqué à un
répertoire.
D'une façon générale, à la création d'un fichier, le groupe propriétaire est celui du propriétaire de l’utilisateur. Avec le droit SGID le groupe sera celui défini au niveau du répertoire père.
29
Permissions (droits d’accès)
Positionner le droit SGID • Un "s" se superpose ici au droit "x" du groupe
propriétaire d'un répertoire.
•
La valeur octal du droit SGID est 2000 (010 000 000 000).
Par exemple sur le répertoire"/home/doc" on souhaite
obtenir les droits :
- -
"drwxr-s- - -" : chmod 2750 /home/doc "drwxr-S- - -" : chmod 2740 /home/doc
30
Permissions (droits d’accès)
Le "sticky bit"
Ce droit s'applique aux répertoires et est symboliquement
représenté par un "t" à la place du "x" de la catégorie "o"
Ce droit permet d'interdire à un utilisateur de supprimer
un fichier dont il n'est pas propriétaire alors qu'il à le droit
d'écrire dans le répertoire (donc de supprimer).
31
Permissions (droits d’accès)
Positionner le "sticky bit"
La valeur octal de ce droit est 1000 (001 000 000 000).
Par exemple pour appliquer ce droit sur le répertoire
"/home/doc" et obtenir les droits : "drwxrwxrwt":
chmod 1777 /home/doc
32
Permissions (droits d’accès)
Remarque :
Si le droit "x" n'est pas accordé sous le droit "s" ou "t"
le droit étendu apparaît en majuscule "S" ou "T"
Soit chmod 2750 /home/doc ("drwxr-s- - -")
Avec chmod 2740 /home/doc
On obtiendra "drwxr-S- - -"
(suppression du droit "x" derrière le "s")
33
Liens entre fichiers
ln
Crée un lien entre fichiers (raccourcis).
– Hard Link - Associe deux inodes à un fichier.
Hard links: Représente un même fichier à deux
emplacements différents
Possible seulement au sein d’un même file system.
– Soft (symbolic) Link - Pointeur indirect sur un fichier.
Est une entrée dans un répertoire représentant un chemin
vers un fichier.
Peut être exploité entre différents file systems. Lien vers un fichier sans se soucier de sa place originale.
$ ls -l file1 file2 lrwxrwxrwx 1 hal acct 512 Mar 14 11:36 file1-> filepointat -rwxrwxrwx 2 hal acct 512 Mar 14 11:36 file2
34
Exemple de liens
Le fichier myfile comprend à la fois un lien
symbolique et un lien hard.
myfile
hlink
slink
data
Pointer
35
Exemple de liens
Si myfile est supprimé, alors hlink pointe encore sur data et slink ne pointe sur aucun élément.
myfile
hlink
slink
data
Pointer
36
Liens entre fichiers
Si un nouveau myfile est créé , hlink pointe toujours sur le “data”
original et slink pointe sur le nouveau “data” de myfile.
myfile
hlink
slink
data
data
Pointer
37
Planification des tâches
Planification des taches (crontab)
Commande crontab
Syntaxe des lignes des tables crontab
Planification asynchrone (anacron)
Planification avec la commande at
38
Planification des tâches
Le service crond
Dans un système Unix, de nombreuses tâches sont
régulièrement planifiées :
• La mise à jour de la BD du programme locate ;
• La rotation des logs ;
• Les sauvegardes ;
• Des scripts d'entretien (comme le nettoyage des fichiers
temporaires).
39
Planification des tâches
cron est le démon en charge d'exécuter des commandes
planifiées et récurrentes (chaque jour, chaque semaine,
etc.) ;
atd est celui qui s'occupe des commandes à exécuter une
seule fois, à un instant précis et futur.
40
Planification des tâches
Le service crond
Il est chargé de faire exécuter par le système toutes tâches
(commandes et scripts) définies et planifiées à l'avance.
Publicité
Ces tâches allant de la simple commande aux scripts
complexes peuvent ainsi être exécutées à heure fixe et
même de façon périodique, et fait l'objet de messages de
compte-rendu.
41
Planification des tâches
Planification des taches (commande crontab)
La commande crontab permet la programmation des tâches planifiées.
Son usage est réservée à root.
Par défaut, tous les utilisateurs peuvent planifier l'exécution de tâches.
C'est pourquoi chacun dispose de sa propre crontab, où il peut consigner
les commandes à planifier. Il peut la modifier en exécutant crontab -e
ses informations sont stockées dans le fichier
/var/spool/cron/crontabs/utilisateur
42
Planification des tâches
Planification des taches (commande crontab)
On peut toutefois autoriser certains utilisateurs et interdire d’autres via les
fichiers /etc/cron.allow et /etc/cron.deny
Exemple : seuls Mohamed et Ali ont la permission d'utiliser le service
crontab
cat cron.allow Mohamed Ali
Si le fichier /etc/cron.allow existe, alors vous devez être présent dans ce fichier pour être autorisé à utiliser cette commande. Si le fichier /etc/cron.allow n'existe pas mais que /etc/cron.deny existe, alors vous ne devez pas être mentionné dans le fichier /etc/cron.deny afin de pouvoir utiliser cette commande.
Il est conseillé de ne créer qu'un seul des deux fichiers et ensuite placer le nom des utilisateurs auxquels on veut donner/refuser l'accès à la commande crontab.
43
Planification des tâches
Planification des taches (commande crontab)
Le processus crond est normalement lancé au démarrage.
On peut le lancer ou l'arrêter avec https://phoenixnap.com/kb/start-stop-
restart-linux-services systemctl start crond.service (ou
/etc/rc.d/init.d/crond pour system V)
Il lit toutes les minutes les fichiers présents dans le répertoire
/var/spool/cron (et aussi le fichier /etc/crontab, pour voir si des tâches
doivent être exécutées).
Chaque action de crond ajoute une ligne de message dans le fichier
/var/log/cron, qu'il faut purger de temps en temps ... par une commande
crontab (CAD créer un script de purge et le placer dans le fichier crontab)
Par défaut si une commande produit un affichage, il est dirigé vers la
messagerie
44
Planification des tâches
L'utilisateur root dispose de sa crontab personnelle, mais peut également
employer le fichier /etc/crontab ou déposer des crontab supplémentaires dans
le répertoire /etc/cron.d/
Ces deux solutions ont l'avantage de pouvoir préciser l'utilisateur sous l'identité
duquel exécuter la commande.
Le paquet cron propose par défaut des commandes planifiées qui exécutent :
• une fois par heure les programmes du répertoire /etc/cron.hourly/ ;
• une fois par jour les programmes du répertoire /etc/cron.daily/ ;
• une fois par semaine les programmes du répertoire /etc/cron.weekly/ ;
• une fois par mois les programmes du répertoire /etc/cron.monthly/.
De nombreux paquets Debian profitent de ce service : en déposant dans ces
répertoires des scripts de maintenance, ils assurent le fonctionnement optimal
de leur service.
45
Planification des tâches
Commande crontab[-u user]{-l |-r|-e}
Options :
crontab -l affiche le fichier crontab de l'utilisateur
crontab – r efface ce fichier
crontab -l -u Med root examine le fichier crontab de l'utilisateur Med
crontab –e crée ou édite (pour modification) un fichier temporaire dans
/tmp ouvert dans vi
Lors de la sauvegarde, le fichier est écrit dans /var/spool/cron/$USER, où
$USER est le nom de login de l'utilisateur.
46
Planification des tâches
Syntaxe des lignes des tables crontab
Chaque ligne du fichier contient 6 champs, les 5 premières déterminent les
moments d'exécution de la tâche décrite au 6ème champ.
Les 5 premiers, séparés par des espaces, appelés champs temporels,
décrivent la périodicité :
minutes (0-59), heures (0-23), jour du mois (1-31), mois de l'année
(1-12), jour de la semaine (0-6, 0= dimanche)
47
Planification des tâches
Syntaxe des lignes des tables crontab
Le 6ème est la commande à exécuter, ce peut être naturellement un script qcq
un champ temporel peut contenir :
une valeur précise et valide pour le champ (par exemple 15 sur le champ minute)
une liste de valeurs valides, séparées par des virgules (1,3,5 dans le champ
mois : janvier, mars, mai)
un intervalle valide (1-5 dans le champ jour : du lundi au vendredi)
* pour signifier toutes les valeurs possibles du champ (* dans le champ minute :
toutes les minutes)
*/5 (dans le champ minutes : toutes les 5 minutes), 0-23/3 (dans le champ
heures : toutes les 3 heures)
48
Planification des tâches
Exemples
exécution chaque 1er et 15 de chaque mois à minuit
0 0 1,15 * * commande
exécution toutes les heures passées 15 minutes
15 * * * * commande
exécution tous les matins du lundi au vendredi à 7 h 30
30 7 * * 1-5 commande
exécution tous les quarts d'heure de 15 à 19h du lundi au vendredi
seulement en 1ère quinzaine du troisième trimestre
0,15,30,45 15-19 1-15 7-9 1-5 commande
49
Planification des tâches
Exemples
trouver puis nettoyer le répertoire /tmp des vieux fichiers (non modifiés
depuis 31 jours) tous les 1er jour de chaque mois, à 2 heures du matin
0 2 1 * * find /tmp -atime 31 -exec rm -f {} \;
envoyer les messages "Je suis encore au travail !" tous les quarts
d'heure à partir de 17 h à tous les utilisateurs actuellement connectés,
et le message "Bonjour chef !" à root tous les jours ouvrables à 10 h
0 10 * * 1-5 write root %Bonjour chef !
*/15 17-20 * * 1-5 wall %Je suis encore au travail !
50
Planification des tâches
Planification des taches (commande at)
La commande at prévoit l'exécution d'une commande à un moment
ultérieur.
Elle prend l'horaire et la date prévue en paramètres sur sa ligne de
commande, et la commande à exécuter sur son entrée standard.
L'horaire est indiqué en suivant les conventions
habituelles : 16:12 représente 16 h 12.
La date peut être précisée au format JJ.MM.AA (27.07.20 représentant
ainsi 27 juillet 2020) ou AAAA-MM-JJ (cette même date étant alors
représentée par 2020-07-27).
On peut encore écrire explicitement today (aujourd'hui)
ou tomorrow (demain).
51
Planification des tâches
Planification des taches (commande at)
$ at 09:00 25.05.20 <<FIN
echo "Penser à me renseigner de la progression de vos activités pour
la séance de révision" \
> | mail [email protected]
FIN
warning: commands will be executed using /bin/sh
job 31 at Mon May 25 09:00:00 2020
52
Planification des tâches
Planification des taches (commande at)
Une autre syntaxe permet d'exprimer une durée d'attente :
at now + nombre période.
La période peut valoir minutes, hours (heures), days (jours)
ou weeks (semaines).
Le nombre indique simplement le nombre de ces unités qui doivent
s'écouler avant exécution de la commande.
53
Planification des tâches
Planification des taches (commande at)
Pour annuler une tâche planifiée pour cron, il suffit, lors d'un appel
à crontab -e, de supprimer la ligne correspondante dans la crontab où la
tâche est définie. Pour les tâches at, c'est à peine plus complexe : il suffit
d'exécuter la commande atrm numéro-de-tâche. Le numéro de tâche est
indiqué par la commande at lors de la planification mais on pourra le
retrouver grâce à la commande atq, qui donne la liste des commandes
actuellement planifiées.
54
Planification des tâches
Planification asynchrone : (commande anacron)
anacron est le démon qui complète cron pour les ordinateurs
non allumés en permanence. Les tâches régulières étant
habituellement planifiées au milieu de la nuit, elles ne seront
jamais exécutées si la machine est éteinte à ce moment-là.
La fonction d'anacron est de les exécuter en prenant en
compte les périodes où l'ordinateur ne fonctionne pas.
55
Planification des tâches Planification asynchrone : (commande anacron)
Attention, anacron fera fréquemment exécuter cette activité en
retard quelques minutes après le démarrage de la machine, ce
Publicité
qui peut en perturber la réactivité. C'est pourquoi les tâches du
fichier /etc/anacrontab sont démarrées sous la
commande nice, qui réduit leur priorité d'exécution et limitera
donc l'impression de lenteur du reste du système. Attention, le
format de ce fichier n'est pas le même que celui
de /etc/crontab
56
Gestion des quotas
Qu’est ce qu’un quota ?
Un outil qui permet de maîtriser l'utilisation de l'espace disque.
Les quotas consistent à fixer une limite d'espace pour (user,group)
Pour la création de ces quotas, on définit 2 types de limites :
- La limite douce (ou soft limit) :
la quantité maximale d'espace qu'un utilisateur peut occuper sur
le système de fichiers.
les utilisateurs pouvent temporairement dépasser leur limite douce
- La limite dure (ou hard limit):
.une limite absolue pour l'utilisation de l'espace. L'utilisateur ne peut
pas dépasser cette limite. Passée cette limite,est interdite.
57
Gestion des quotas - Activations des Quotas Les Quota sont activés au démarrage grâce a la commande quotaon lancée par le script
/etc/rc.d/rc.sysinit
En tant que super utilisateur et en utilisant l'éditeur de texte de votre choix, ajoutez les options usrquota et/ou grpquota aux systèmes de fichiers nécessitant des quotas :
Dans cette exemple, des quotas pour l'utilisateur et le groupe d'utilisateurs sont activés dans le système de fichiers /home.
58
Gestion des quotas - Remontage des systèmes de fichiers
Après avoir ajouté les options usrquota et grpquota,
remonter chaque système de fichiers dont l'entrée fstab a
été modifiée pour prendre en compte la modification :
mount -o remount /home
59
Gestion des quotas - Création de fichiers quota
Créer le fichier qui contiendra les quotas :
#touch /home/aquota.user
#touch /home/aquota.group
Après création de ces fichiers, il faut initialiser la base des quotas en exécutant la commande
suivante :
quotacheck –avug
Les options sont utilisées de la manière suivante:
a — vérifie tous les systèmes de fichiers montés localement et dotés de quotas
activés
v — affiche des messages de statut (verbose) lors de la vérification du quota
u — vérifie les informations relatives au quota de disque utilisateur
g — vérifie les informations relatives au quota de disque groupe
60
Gestion des quotas - Attribution des quotas -User - group-
La dernière étape consiste à attribuer les quotas de disque à l'aide de la commande
edquota
Syntaxe : edquota [−u user] [−g group] [−t]
−u user : définit les quotas pour un ou plusieurs utilisateurs
−g group : définit les quotas pour un ou plusieurs groupes
−t : définit les délais
Exemple :
Disk quotas for user testuser (uid 501):
Filesystem soft hard /dev/hda3 440436 0 0 37418 0 0
blocks soft hard inodes
61
Gestion des quotas - Attribution des quotas -Suite
Fixer un délai
le délai fixé entre le moment où l'utilisateur atteint la limite soft et celui où on va lui
interdire toute occupation supplémentaire dans le système de fichiers.
Syntaxe : edquota −t
Exemple :
edquota −t
Période de grâce avant d'appliquer les limites souples pour les utilisateurs :
L’unité de temps peut être : days, hours, minutes, ou seconds
62
Gestion des quotas - Mise en place Commandes
But : mettre en place des quotas.
1. Pour activer les quotas utilisateur et remontez le système de fichiers (/DONNEES) :
Dans /etc/fstab :
LABEL=DONNEES /DONNEES ext3 defaults,usrquota 0 0
puis : # mount -o remount /DONNEES
2. Créez et activez les quotas.
quotacheck -c /DONNEES
quotaon /DONNEES
3. Placez une limite globale de 150 Mo à l’utilisateur Mohamed :
edquota Mohamed, puis inscrivez la valeur 153600 (en octets) en hard et soft, et
sauvegardez le fichier.
63
Gestion des quotas – Mise en place des quotas
1 Mise en place
Vous voulez mettre en place les quotas sur la partition /home (par exemple) en
respectant les étapes suivantes :
- Modifiez les options de partition dans /etc/fstab : On rajoute dans les options
usrquota (utilisateur) ou grpquota (groupe), ou les deux.
LABEL=/home /home ext3 defaults,usrquota 1 2
- Remontez le système de fichiers : # mount -o remount /home
-
Créez les fichiers contenant les informations de quota (base de données de
quotas) : # cd /home # touch aquota.user aquota.group
- Mettez à jour la base de données avec la commande quotacheck :
-
quotacheck -c /home
64
Gestion des quotas – Mise en place des quotas
- Démarrez (ou arrêter) les quotas. Cette opération n’est pas nécessaire après un
redémarrage de Linux car la mise en place des quotas est comprise dans les
scripts de démarrage. La commande quotaon démarre les quotas pour le système
de fichiers indiqué (-a pour tous). La commande quotaoff stoppe les quotas.
quotaon /home
-
-
Éditez les quotas pour les utilisateurs ou les groupes. La commande edquota est
utilisée.
En pratique, si tous les utilisateurs doivent avoir les mêmes quotas ou avec
quelques variantes, on crée un utilisateur lambda dont on recopiera les
propriétés.
-
Établir les quotas pour Mohamed : # edquota Mohamed ou # edquota -u
Mohamed
65
Gestion des quotas – Mise en place des quotas
-
Les quotas de Ali sont identiques à ceux de Mohamed :
edquota -p Mohamed Ali
-
Établissez le délai de grâce. Le délai accepte les unités « seconds », « minutes », «
hours », « days », « weeks », « monthes ».
edquota -t
• Vérifiez les quotas. Les utilisateurs peuvent vérifier l’état de leurs quotas avec la
commande quota. L’administrateur peut générer un rapport avec repquota. Enfin la
commande warnquota qui peut être exécutée via cron peut envoyer un mail aux
utilisateurs pour les prévenir en cas de dépassement.
L’édition des quotas se fait avec l’éditeur par défaut du système qui est
généralement vi (le comportement peut être modifié via les variables EDITOR et
VISUAL). Les blocs de quotas sont des blocs de 1 Ko.
66
Gestion des quotas – Mise en place des quotas
edquota Mohamed
Disk quotas for user Mohamed (uid 502):
Filesystem blocks softhard
inodes
softhard
/dev/hda5 1695256
25000003000000 12345 00
Avec l’éditeur, on peut modifier les valeurs soft et hard qui correspondent aux
limites douces et dures pour le nombre de blocs et le nombre d’inodes. Ci-dessus, il a
été établi une limite douce à environ 2,4 Go (2500000 ko) et dure à environ 2,9 Go
(3000000 ko) d’occupation du système de fichiers pour roger. Il n’y a pas de quotas
sur le nombre d’inodes (valeur à 0).
edquota Mohamed
Le contenu des champs blocks et inodes est dynamique et ne doit pas être touché, ce qui n’a de toute façon aucun effet.
67
Gestion des quotas – Mise en place des quotas
edquota -t
Filesystem Block grace period Inode grace period
/dev/hda3 7days
7days
repquota /home
*** Report for user quotas on device /dev/hda5
Block grace time: 7 days; Inode grace time: 7 days
User Used
soft hard grace
used
soft hard
root
-- 12345 0 0
5 0 0
Mohamed -- 1695256 2500000 3000000 12345 0 0
Une dernière nécessité est d’utiliser régulièrement la commande quotacheck pour maintenir la cohérence des informations de quotas des systèmes de fichiers.
En effet, en cas arrêt des quotas ou de problème (arrêt inopiné par exemple), il peut parfois être nécessaire de vérifier et de réactualiser les informations. # quotacheck - avug
68