Pour éviter que vos utilisateurs utilisent tout l’espace disque et/ou pour que cet espace soit réparti de façon équitable entre eux il est utile de mettre en place des quotas.
Les quotas vont permettre d’attribuer une quantité d’espace disque à des groupes ou à des utilisateurs en particulier.
Les quotas se gèrent en fonctions de 3 paramètres :
- Hard Limit : Quantité d’espace disque qui ne pourra jamais être dépassée.
- Soft Limit : Quantité d’espace disque attribuée, elle peut être temporairement dépassée.
- Grace Period : Période de temps attribuée pour revenir en soft Limit.
Installation et configuration
Ajout des paquets
Pour gérer les quotas on utilise les paquets quota
et quotatool
:
# apt install quota quotatool |
Fichier fstab
Dans notre exemple les quotas seront gérés sur le répertoire /home
pour répartir équitablement les ressources envers les utilisateurs.
Pour cela il faut dans un premier temps modifier le fichier /etc/fstab
:
# vim /etc/fstab |
Dans lequel on va ajouter les options usrquota
(utilisateurs) et grpquota
(groupes) à la ligne où se trouve /home
:
<file system> <mount point> <type> <options> <dump> <pass> |
(Re)monter la partition
Pour que les modifications soient prises en compte il faut remonter la partition :
# mount -vo remount /home |
Si la partition n’est pas remontée vous aurez ce message d’erreur au moment d’utiliser quotacheck
:
quotacheck: Mountpoint (or device) /home not found or has no quota enabled. |
Initialisation des quotas
Pour activer les quotas on utilise la commande quotacheck
avec les options suivantes :
# quotacheck -vgum /home |
- -v : mode verbeux.
- -u : vérifie seulement les quotas utilisateurs présent dans
/etc/mtab
ou dans le système de fichier spécifié. - -g : vérifie seulement les quotas groupes présent dans
/etc/mtab
ou dans le système de fichier spécifié. - -m : Ne pas remonter le système de fichioer en lecture seule.
Il ce peut que vous ayez une erreur dû au fait que c’est la première fois que vous créez un fichier de quota. Pour plus d’information man quotacheck
.
Les fichiers aquota.group
et aquota.user
ont maintenant été crées dans /home
:
# ls -l /home |
Activation des quotas
Pour activer les quotas on utilise la commande quotaon
:
# quotaon -vgu /home/ |
À tous moments vous pouvez vérifier l’état des quotas :
# quotaon -pa |
Vous pouvez maintenant attribuer des quotas sur vos disques pour vos utilisateurs.
Attribution des quotas
Pour attribuer les quotas disque on va utiliser la commande quotatool
:
Pour un groupe
Pour mettre les quotas sur un groupe entier on précise -g
:
# quotatool -g <grpe> -bq <SoftLimit> -l <HardLimit> /home |
Pour un utilisateur
Pour un unique utilisateur on précise cette fois çi l’option -u
:
# quotatool -u <user> -bq <SoftLimit> -l <HardLimit> /home |
Exemples, il est possible de préciser l’unité : k (kilo), m(mega), g(giga), t(tera), ..
# quotatool -u aline -bq 90m -l 100m /home |
Visualiser les quotas
Les options -u
et -g
correspondent à l’utilisateur et au groupe :
# repquota -avug |
Les quotas ont été dépassés pour l’utilisatrice aline et il faut revenir en dessous de la softLimit sous 7 jours, le signe +
indique un dépassement.
Si vous souhaitez rajouter des fichiers dans votre répertoire alors que le quota a déjà été dépassé vous aurez ce genres de message d’erreur :
Impossible d'écrire dans «image.jpg» (Débordement du quota d'espace disque). |
Exemple concret : L’utilisatrice Leela possède un quota maximum de 40 octets et la limite basse est de 35 octects, 28 octets d’espace disque ont déjà été utilisés. On va créer des fichiers .txt avec le résultat de la commande ls
# ls / >test1.txt |
Lors de la création d’un 2ème fichier, on obtient un warning, la limite basse va être dépassée :
# ls / >test2.txt |
Lors de la création d’un 3ème fichier, on obtient une erreur, la limite haute est atteinte :
# ls / >test3.txt |
Changer la période de grâce
La période de grâce est défini par défaut à 7 jours. Il est possible de la modifier comme ceci :
# edquota -t |
Ce qui va nous permettre d’éditer le fichier correspondant :
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 |
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 |
Supprimer les quotas
Pour supprimer les quotas :
# sudo quotaoff -avug |
Documentation
https://wiki.archlinux.org/index.php/Disk_quota et
http://arobaseinformatique.eklablog.com/mettre-en-place-des-quotas-sous-debian-a115133838
https://doc.ubuntu-fr.org/quota
https://superuser.com/questions/720388/linux-quota-how-set-grace-time (Période de grâce)