Table des matières

, , ,

Gestion des quotas

La gestion des quotas par utilisateur est utile au niveau des serveurs. Si vous avez créé plusieurs comptes utilisateurs et que vous ne voulez pas qu'un seul utilisateur puisse occuper tout l'espace disque, il faut alors définir des quotas qui apporteront une limitation en terme d'espace disque utilisé.

La gestion des quotas peut aussi être utilisée au niveau des groupes. Par exemple, chaque utilisateur du projet Albireo dispose d'un certain espace disque, et le dossier commun du projet Albireo dispose lui aussi d'une taille maximale afin de permettre au projet Denebola d'exister.

Pour que ceci fonctionne, l'option doit être activée dans le noyau. C'est le cas par défaut sous Ubuntu.

Configuration de l'ordinateur d'exemple

L'ordinateur dispose de 3 disques dur : un de 10Go, un de 15Go, et un de 40Go.

Le disque de 10Go contient le système. Il est reconnu comme sda (sda1, sda2).

Le disque de 15Go contient les répertoires des utilisateurs, c'est sur celui-ci que l'on souhaite définir les quotas. il est reconnu comme sdb (sdb1).

Pré-requis

Installation

Pour utiliser les quotas, vous devez installer le paquet quota.

Configuration du système

Vous devez éditer le fichier /etc/fstab afin d'ajouter usrquota dans les options pour avoir une gestion au niveau utilisateur, et/ou grpquota pour une gestion par groupe.

Le fichier /etc/fstab avant la modification :

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# /dev/sda1 -- converted during upgrade to edgy
UUID=8840ac3b-7209-4e00-a79e-d393de74e0ca / ext3 defaults,errors=remount-ro 0 1
# /dev/sdb1 -- converted during upgrade to edgy
UUID=af16a96e-6ecf-4083-9a77-b21fedf09e5d /home ext3 defaults 0 2
# /dev/sda2 -- converted during upgrade to edgy
UUID=6263979f-794c-43c8-a95b-b33627978928 none swap sw 0 0

Après la modification :

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# /dev/sda1 -- converted during upgrade to edgy
UUID=8840ac3b-7209-4e00-a79e-d393de74e0ca / ext3 defaults,errors=remount-ro 0 1
# /dev/sdb1 -- converted during upgrade to edgy
UUID=af16a96e-6ecf-4083-9a77-b21fedf09e5d /home ext3 defaults,usrquota,grpquota 0 2
# /dev/sda2 -- converted during upgrade to edgy
UUID=6263979f-794c-43c8-a95b-b33627978928 none swap sw 0 0

Utilisation

Création des fichiers de quota

Afin de permettre aux quotas de fonctionner, il faut créer un fichier pour les quotas utilisateur, et un autre pour les quotas de groupe, dans la racine du dossier à protéger. Ici il s'agit de /home.

Ces 2 fichiers doivent appartenir à l'utilisateur root. aquota.user

sudo touch /home/aquota.group   #Création du fichier pour le groupe
sudo touch /home/aquota.user  #Création du fichier pour l'utilisateur
sudo chmod 600 /home/aquota.*

:!: Dans les versions anciennes de Ubuntu le nom des fichiers est légérement différent il faut utiliser :

sudo touch /home/quota.group   #Création du fichier pour le groupe
sudo touch /home/quota.user  #Création du fichier pour l'utilisateur
sudo chmod 600 /home/quota.*

Une fois ces fichiers créés, il faut remonter la partition :

sudo mount -o remount /home

ou bien :

sudo mount -a 

À noter que la commande quotacheck -cguvf /home créera automatiquement les fichiers avec les droits ad hoc s'ils n'existent pas.

Initialisation

Il est nécessaire d'initialiser le système de quota via la commande quotacheck. Cette commande va scanner tout le contenu de la partition et reporter dans /home/quota.* les informations de gestion (espace occupé par les utilisateurs). Il s'agit donc d'une initialisation.

sudo quotacheck -vgum /home

Alternative : initialiser toutes les partitions qui sont affectées par les quotas dans /etc/fstab :

sudo quotacheck -vagum

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.

sudo quotaon -avug

Pour une explication des options, voir cette page (en anglais).

Fixation des droits

Il faut comprendre les 4 types de limites possible, la limite "soft" et la limite "hard" ainsi que la limite "block" et la limite "inode".

Dans les 2 cas, vous accéderez un éditeur de texte en terminal de type Vim vous permettant d'affecter les droits. La page est organisée en colonnes : voir la copie d'écran ci-dessous.

Vous pouvez utiliser votre éditeur de texte favori en précédant edquota par EDITOR="nomEditeur"
sudo EDITOR="vim"  edquota -u $user
Disk quotas for user test (uid 1006):
 Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sdb1                      9252       8192      10240          6        0        0

La colonne blocks correspond a la taille actuellement utilisé par l'utilisateur

Les colonnes soft & hard correspondent aux limites "block"

La colonne inodes correspond aux nombres de fichier de l'utilisateur

Une fois les quotas définis pour un utilisateur, on peut les répliquer pour d'autres utilisateurs en utilisant l'option -p de la commande edquota.

edquota -p utilisateur1 utilisateur2

Cette commande fixe les même quotas à utilisateur2 que ceux existants pour utilisateur1

Afficher/vérifier les droits

Pour voir les droits sur une partition (ex : /home) :

repquota /home

Pour voir les droits de tous les utilisateurs

repquota -a

Désactivation des quotas

FIXME

sudo quotaoff -avug

Pour une explication des options, voir cette page (en anglais).

Conseils

Tests

On peut pour cela utiliser la commande dd, par exemple cette commande crée un fichier de 20Mo :

 dd if=/dev/zero of=unFichierDe20Mo bs=1M count=20

Voir aussi


Contributeurs : MulX, marc31