Le système de quotas permet de définir pour chaque utilisateur et/ou
groupe une limite souple et une limite impérative à
la quantité d'espace disque utilisable sur un système de
fichiers donné.
La limite impérative ne peut pas être dépassée.
La limite souple peut être dépassée, mais des avertissements
s'en suivront.
De plus, l'utilisateur ne peut pas dépasser une
limite souple pendant plus d'une semaine (par défaut) d'affilée.
Une fois la semaine écoulée, la limite souple
devient une limite impérative.
L'appel système
quotactl()
manipule ces quotas.
Son premier argument est de la forme
QCMD(subcmd,type)
où
type
vaut soit
USRQUOTA
soit
GRPQUOTA
(respectivement pour les quotas d'utilisateur et de groupe),
et où
subcmd
est décrit plus bas
Le second argument
special
est un périphérique par bloc auquel les quotas s'appliquent.
Il doit être monté.
Le troisième argument
id
est l'identifiant de l'utilisateur ou du groupe auquel
s'appliquent les quotas.
La quatrième argument
addr
est l'adresse d'une structure de données dépendant de la
commande à utiliser.
La commande
subcmd
est dans la liste suivante :
-
- Q_QUOTAON
-
Valider les quotas.
L'argument
addr
est le chemin d'accès au fichier contenant les quotas pour le
système de fichiers.
-
- Q_QUOTAOFF
-
Désactiver les quotas.
-
- Q_GETQUOTA
-
Obtenir les limites actuelles et l'utilisation courante de
l'espace disque.
L'argument
addr
est un pointeur sur une structure dqblk (définie dans
<sys/quota.h>).
-
- Q_SETQUOTA
-
Fixer la limite et l'utilisation actuelle.
addr
est identique à
Q_GETQUOTA
-
- Q_SETQLIM
-
Fixer les limites.
addr
est identique à
Q_GETQUOTA
-
- Q_SETUSE
-
Fixer l'utilisation.
-
- Q_SYNC
-
Synchroniser les quotas d'un système de fichiers.
-
- Q_GETSTATS
-
Obtenir des statistiques.