Table des matières

quota

Remarque importante

Il est préférable de faire des essais sur de petites partitions tests avant d'appliquer ce tuto !

Introduction

Les quotas permettent à l’administrateur de limiter de deux manières, l’espace disque employé par les utilisateurs et par les groupes d’utilisateurs :

  1. limiter le nombre de fichiers (nombre d’i-nodes) ;
  2. limiter la place occupée (nombre de blocs de 1kb).

L’arborescence d’un système UNIX étant composé de plusieurs systèmes de fichiers, il est nécessaire de placer un dispositif de quotas sur tous ceux qui peuvent abriter des données en provenance des utilisateurs. Généralement, le répertoire /home contenant les comptes des utilisateurs réside dans un système de fichiers séparé de manière à mieux contrôler l’occupation du disque. Le mécanisme de quotas doit donc être mis en place sur ce système de fichiers.

Installation

apt-get update && apt-get install quota quotatool

Préambule

Sous Linux, les quotas sont gérés selon trois paramètres :

  1. une limite soft ;
  2. une limite hard ;
  3. une période de grâce.

La limite hard est la limite absolue qu’un utilisateur ne peut en aucun cas dépasser.
La limite soft peut être dépassée durant une période de temps stipulée par le délais de grâce. Durant cette période, des messages sont envoyés à l’utilisateur pour l’informer de ce qu’il a dépassé la limite autorisée.

Fichiers

Les quotas sont gérés par des fichiers de base de données présents dans la racine des systèmes de fichiers à contrôler.
Le fichier quota.user contient les informations relatives aux limites des différents utilisateurs alors que le fichier quota.group contient les limites relatives aux différents groupes du système.

Ces deux fichiers doivent être accessibles, en lecture et en écriture, uniquement par root.

Voici un exemple de création des fichiers de base de données de quotas :

touch quota.user quota.group
chmod 600 quota.*
ls -l quota.*
retour de la commande
-rw------- 1 root root 0 oct.  16 05:46 quota.group
-rw------- 1 root root 0 oct.  16 05:46 quota.user

fstab

Pour que les quotas soient pris en considération, il faut éditer2) le fichier /etc/fstab3).
Tout système de fichiers nécessitant une gestion des quotas soit au niveau des utilisateurs, soit au niveau des groupes ou bien à la fois pour les groupes et pour les utilisateurs doit comporter une indication dans le fichier /etc/fstab.

  1. La mention usrquota active les quotas au niveau des utilisateurs et
  2. grpquota active les quotas au niveau des groupes.

Voici un exemple d’activation des quotas pour le système de fichiers racine :

# /home was on /dev/sda9 during installation
 14 UUID=f480cd7a-9805-43a0-bbeb-ff3897a1498e /home           ext4    defaults,usrquota,grpquota        0       2

Le quatrième champ4) stipule les options de montage du système de fichiers. C’est dans ce champ que l’activation des quotas sera mentionnée.

Le fichier /etc/fstab n’étant lu qu’au démarrage du système, il faut rebooter la machine pour que les modifications rendent la gestion des quotas active.

quotacheck

Au départ, les bases de données quota.user et quota.group ne sont pas initialisées. Dans un premier temps, il est nécessaire de construire ces bases de données sans imposer de limites.
La commande quotacheck permet d’effectuer cette opération comme le montre la session interactive suivante :

quotacheck -vgum /dev/sda9
retour de la commande
quotacheck: Les quotas pour users sont actif sur le point de montage /home si bien que quotacheck risque d'endommager le fichier.
Veuillez désactiver les quotas ou utiliser -f pour forcer la vérification.

Veuillez désactiver les quotas ou utiliser -f pour forcer la vérification. Donc :

quotacheck -f -vgum /dev/sda9
retour de la commande
quotacheck: Parcours de /dev/sda9 [/home] terminé
quotacheck: Vérifié 308 répertoires et 579 fichiers

La commande quotacheck doit construire une base de données pour les utilisateurs (option –u) ainsi que pour les groupes (option -g).

Pour initialiser plusieurs partitions avec des quotas, utilisez la commande :
quotacheck -vagum

Surveillance

Bien que les bases de données soient créées, l’administrateur doit enclencher la surveillance des quotas au moyen de la commande quotaon.

L’arrêt de la surveillance peut être réalisée au moyen de la commande quotaoff.

Activation des quotas

Cette commande est nécessaire pour activer le « monitoring » immédiatement, autrement, la commande edquota retournera toujours la même chose, même après modification du contenu des dossiers soumis aux quotas.

quotaon -avug

edquota

La commande edquota permet d’éditer les quotas relatifs à un utilisateur et à un groupe.

quota.user

Voici un exemple d’édition des quotas pour un user :

edquota public
retour de la commande
Quotas disque pour user public (uid 1001) :                                                                         
 Système de fichiers           blocs       souple     stricte   inodes    souple   stricte
  /dev/sda9                     38336          0          0        201        0        0 

Dès que l’une des limites soft est atteinte, l’utilisateur voit sa commande échouer et il en est averti par un message.

Voici un exemple de session interactive montrant l’échec d’opérations en raison de la limite des quotas :

option -g

L’option -g de la commande edquota permet d’éditer les quotas relatifs à un groupe.
Voici un exemple d’édition des quotas pour un groupe.

Quotas disque pour group public (gid 1001) :

edquota -g public
retour de la commande
 Système de fichiers           blocs       souple     stricte   inodes    souple   stricte
  /dev/sda9                     38336          0          0        201        0        0

Dès qu’un des membres du groupe dépasse une limite soft, tous les membres du groupe sont dans l’incapacité de continuer leur travail sans avoir au préalable effacé des fichiers afin de répondre aux critères mis en œuvre par le système des quotas.

Période de grâce.

La période de grâce peut être fixée au moyen de l’option –t de la commande edquota.

Voici un exemple fixant les délais à 7 jours :

edquota -t

Édite :

retour de la commande
Sursis avant l'application des limites souples pour users :                                                         
Unités de temps peuvent être : days (jours), hours (heures), minutes, ou seconds
  Système de fichiers  période de sursis bloc  période de sursis inode
  /dev/sda9                     7days                  7days

option -p

La gestion des quotas peut être très lourde lorsqu’il faut éditer les limites relatives à chaque utilisateur du système. Dès que les limites sont fixées pour un utilisateur, il est possible de les recopier pour d’autres.
L’option -p de la commande edquota permet de prendre un utilisateur comme base pour fixer les quotas de plusieurs autres.

Voici un exemple d’une telle commande :

edquota -p jchalle jfc jl rc

Dans cet exemple, les utilisateurs jfc, jl et rc reçoivent les mêmes limites que l’utilisateur jchalle.

repquota

La commande repquota établit un rapport sur l’utilisation des quotas.

option –u

Voici un exemple de consultation des limites associées aux utilisateurs (option -u) :

repquota -u /dev/sda9
retour de la commande
*** Rapport pour les quotas user sur le périphérique /dev/sda9
Période de sursis bloc : 7days ; période de sursis inode : 7days
                        Block limits                File limits
Utilisateur     utilisé souple stricte sursis utilisé souple stricte sursis
----------------------------------------------------------------------
root      --      24       0       0              3     0     0       
user  --  256296       0       0            681     0     0       
public    --   38336       0       0            201     0     0     

option -g

Les mêmes vérifications peuvent avoir lieu pour les groupes. Pour cela, il suffit de mentionner l’option -g.

Voici un exemple de vérification des quotas relatifs aux groupes :

repquota -g /dev/sda9
retour de la commande
*** Rapport pour les quotas group sur le périphérique /dev/sda9
Période de sursis bloc : 7days ; période de sursis inode : 7days
                        Block limits                File limits
Groupe        utilisé souple stricte sursis utilisé souple stricte sursis
----------------------------------------------------------------------
root      --      24       0       0              3     0     0       
user  --  256296       0       0            681     0     0       
public    --   38336       0       0            201     0     0
1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
4)
defaults,usrquota,grpquota