Gestion des quotas
L'idée est de gérer les quotas (sous
Linux Fedora Core 2) afin de limiter l'espace des utilisateurs. Ce document montre comment mettre en oeuvre la gestion des quotas
sous Linux.
1. Le noyau gère t'il les quotas?
Pour le savoir, on vérifie tout simplement :
[root@localhost root]# rpm -qa | grep quota
quota-3.10-2
Puis :
[root@localhost root]# grep -i quota /boot/config-2.6.5-1.358
CONFIG_XFS_QUOTA=y
CONFIG_QUOTA=y
CONFIG_QUOTACTL=y
2. Configuration de la gestion des quotas
Les quotas sont activés au démarrage grâce à la commande /sbin/quotaon
lancée par le script /etc/rc.d/rc.sysinit. Ils sont désactivés à l'arrêt
du système par la commande quotaoff.
Nous devons modifier le fichier /etc/fstab pour gérer
les quotas au niveau utilisateur. Il suffit de rajouter le mot-clé
usrquota au niveau de la ligne de la partition concernée :
/dev/md3 /home ext3 default,usrquota 1 2
PS : Ici, nous ne souhaitons gérer les quotas qu'au niveau utilisateur.
On pourrait les gérer au niveau groupe en mettant également le mot-clé
grpquota dans le fichier /etc/fstab à la ligne correspondante
à la partition concernée.
Le fichier aquota.user doit être créé à la
racine du système de fichier qui comporte les quotas, c'est à dire /home dans
notre cas. A la création de ce fichier, il faut veiller à lui donner les droits
en lecture/écriture seulement pour le root.
[root@localhost root]# touch /home/aquota.user
[root@localhost root]# chmod 600 /home/aquota.user
[root@localhost root]# mount -o remount /home
PS : Si nous voulions gérer les quotas au niveau groupe,
il faudrait créer de la même manière le fichier aquota.group.
A noter que l'on peut gérer les quotas utilisateur et les quotas groupe
simultanément.
Initialisons la base des quotas :
[root@localhost root]# quotacheck -afm
Voici la syntaxe de la commande : quotacheck [ -vugfm ] -a |
filesystem
- -v : mode verbeux, affiche des infos supplémentaires
- -u : vérifie uniquement les fichiers de quotas utilisateurs
- -g : vérifie uniquement les fichiers de quotas groupes
- -f : force la validation et l'écriture d'un nouveau fichier de quotas
- -m : force le remontage de la partition en cas d'échec
- -a : vérifie les fichiers de quotas de tous les systèmes de fichiers en
disposant
- filesystem : vérifie les fichiers de quotas du système de fichiers spécifié
3. Attribution des quotas
Tout d'abord, voici la commande pour afficher un résumé de l'utilisation
des quotas :
[root@localhost root]# repquota -a
Voici la syntaxe de la commande : repquota [ -vug ] -a | filesystem
- -v : mode verbeux, affiche des infos supplémentaires
- -u : affiche des informations sur les quotas utilisateurs
- -g : affiche des informations sur les quotas groupes
- -a : affiche des informations sur tous les systèmes de fichiers disposant
de quotas
- filesystem : affiche des informations sur les quotas du système de fichiers
spécifié
La commande suivante permet tout simplement d'afficher le quota
de l'utilisateur courant :
[root@localhost root]# quota
Celle-ci, affiche le quota de l'utlisateur alenorcy :
[root@localhost root]# quota alenorcy
Disk quotas for user alenorcy (uid 11679):
Filesystem blocks quota limit grace files quota limit grace
/dev/md3 16 0 0 3 0 0
Pour attribuer un quota à l'utilisateur alenorcy :
[root@localhost root]# edquota -u alenorcy
Par defaut, vi se lance et il faut modifier le fichier
qui apparaît pour attribuer un quota à l'utilisateur alenorcy. Pour que
ce fichier soit lancé automatiquement dans un autre éditeur, il suffit de mettre
le nom de votre éditeur favori dans la variable $EDITOR.
Le fichier lancé par vi est le suivant :
Disk quotas for user alenorcy (uid 11679):
Filesystem blocks soft hard inodes soft hard
/dev/md3 16 0 0 3 0 0
Pour attribuer un quota, il faut modifier les valeurs qui sont
mises à zero puis enregistrer et fermer l'éditeur.
Le fichier se compose de 6 colonnes :
- Filesystem : système de fichiers concerné par les quotas.
- blocks : nombre de blocs occupés par l'utilisateur dans
le système de fichiers.
- soft : limite soft en nombre de blocs.
- hard : limite hard en nombre de blocs.
- inodes : nombre d'inodes occupées par l'utilisateur dans
le système de fichiers.
- soft : limite soft en nombre d'inodes.
- hard : limite hard en nombre d'inodes.
Pour attribuer un quota à plusieurs utilisateurs de façon automatique
(sans devoir modifier un fichier sous vi...), il faut affecter un "modèle
de quota" aux utilisateurs. Voici un exemple :
[root@localhost root]# edquota -p alenorcy -u autre_utilisateur
L'utilisateur autre_utilisateur a désormais le même
quota que l'utilisateur alenorcy.
Après avoir modifié un quota, on fait une vérification de la
cohérence du système :
[root@localhost root]# quotacheck -afm
Ainsi, il est très simple d'automatiser l'ajout un quota pour
un nouvel utilisateur.
4. Quelques liens
MAJ le 15/06/2005