Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       quotactl - Manipuler les quotas de disque

SYNOPSIS

       #include <sys/quota.h>
       #include <xfs/xqm.h>

       int quotactl(int cmd, const char *special, int id, caddr_t addr);

DESCRIPTION

       Le  système de quotas permet de définir une limite sur la quantité d'espace disque utilisé sur un système
       de fichiers, qui peut être mise par utilisateur ou par groupe. Pour chaque  utilisateur  ou  groupe,  une
       limite  souple  et  une limite impérative peuvent être définies sur chaque système de fichiers. 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 quotactl() manipule ces quotas. L'argument cmd indique une commande à appliquer  à  l'identifiant
       d'utilisateur  ou  de  groupe  spécifié  dans  id.  Pour  initialiser  l'argument  cmd, utilisez la macro
       QCMD(subcmd,type). La valeur type vaut soit USRQUOTA (pour les quotas d'utilisateur), soit GRPQUOTA (pour
       les quotas de groupe). La valeur de subcmd est décrite plus bas.

       L'argument special est un pointeur vers  une  chaîne  de  caractères  (terminée  par  le  caractère  nul)
       contenant le chemin du périphérique spécial en mode bloc pour le système de fichiers à manipuler.

       L'argument  addr  est l'adresse d'une structure de données optionnelle, spécifique à la commande, qui est
       copiée sur ou depuis le système. L'interprétation d'addr est donnée avec chaque commande ci-dessous.

       La valeur de subcmd prend une de ces valeurs :

       Q_QUOTAON
               Activer les quotas pour un système de fichiers. L'argument id est le numéro  d'identification  du
               format de quotas à utiliser. Il existe actuellement trois formats possibles de quotas :

               QFMT_VFS_OLD Le format original de quotas.

               QFMT_VFS_V0  Le   standard  VFS  v0  format  de  quotas,  qui  peut  manipuler  des  identifiants
                            d'utilisateur et de groupe sur 32 bits, et des limites de quotas jusqu'à 2^42 octets
                            et 2^32 inœuds.

               QFMT_VFS_V1  Un format de quotas qui peut manipuler des identifiants d'utilisateur et  de  groupe
                            sur 32 bits, et des limites de quotas jusqu'à 2^64 octets et 2^64 inœuds.

               L'argument addr pointe sur le chemin d'un fichier contenant les quotas du système de fichiers. Le
               fichier  de quotas doit exister ; il est habituellement créé par la commande quotacheck(8). Cette
               opération nécessite le privilège CAP_SYS_ADMIN.

       Q_QUOTAOFF
               Désactiver les quotas pour un système de fichiers. Les arguments addr et id sont  ignorés.  Cette
               opération nécessite le privilège CAP_SYS_ADMIN.

       Q_GETQUOTA
               Obtenir  les  limites  et l’utilisation actuelles d’espace disque pour l'utilisateur ou le groupe
               id. L'argument addr est un pointeur sur une structure  dqblk  définie  dans  <sys/quota.h>  comme
               ceci :

                   /* uint64_t est un entier non signé 64 bits
                      uint32_t est un entier non signé 32 bits */

                   struct dqblk {          /* Definition depuis Linux 2.4.22 */
                       uint64_t dqb_bhardlimit;   /* limite impérative sur le
                                                     nombre de blocs disques */
                       uint64_t dqb_bsoftlimit;   /* limite douce sur le nombre
                                                     de blocs disques */
                       uint64_t dqb_curspace;     /* nombre de blocs actuel dans
                                                     le quota */
                       uint64_t dqb_ihardlimit;   /* nombre maximal d'inœuds
                                                     alloués */
                       uint64_t dqb_isoftlimit;   /* limite douce d'inœuds */
                       uint64_t dqb_curinodes;    /* nombre d'inœuds actuellement
                                                     alloués */
                       uint64_t dqb_btime;        /* limite de temps pour utilisation
                                                     abusive du disque */
                       uint64_t dqb_itime;        /* limite de temps pour utilisation
                                                     des fichiers */
                       uint32_t dqb_valid;        /* masque de bit des constantes
                                                     QIF_* */
                   };

                   /* Attributs de dqb_valid qui indiquent quels champs
                      de la structure dqblk sont valables. */

                   #define QIF_BLIMITS   1
                   #define QIF_SPACE     2
                   #define QIF_ILIMITS   4
                   #define QIF_INODES    8
                   #define QIF_BTIME     16
                   #define QIF_ITIME     32
                   #define QIF_LIMITS    (QIF_BLIMITS | QIF_ILIMITS)
                   #define QIF_USAGE     (QIF_SPACE | QIF_INODES)
                   #define QIF_TIMES     (QIF_BTIME | QIF_ITIME)
                   #define QIF_ALL       (QIF_LIMITS | QIF_USAGE | QIF_TIMES)

               Le  champ  dqb_valid  est  un masque de bit qui permet d'indiquer quelles entrées de la structure
               sont valables. Actuellement, le noyau remplit toutes les entrées de la  structure  dqblk  et  les
               marque  comme  valables  dans  le  champ  dqb_valid.  Les utilisateurs non privilégiés ne peuvent
               connaître que leurs  propres  quotas ;  un  utilisateur  avec  le  privilège  CAP_SYS_ADMIN  peut
               connaître les quotas de tous les utilisateurs.

       Q_SETQUOTA
               Définir  les  informations  de  quotas  pour  l'utilisateur  ou  le  groupe  id, en utilisant les
               informations fournies par la structure dqblk dont l'adresse est  contenue  dans  addr.  Le  champ
               dqb_valid  de  la  structure  dqblk  indique quelles entrées de la structure ont été définies par
               l'appelant. Cette  opération  remplace  les  opérations  Q_SETQLIM  et  Q_SETUSE  de  l'interface
               antérieure de quotas. Cette opération nécessite le privilège CAP_SYS_ADMIN.

       Q_GETINFO
               Obtenir  les  informations (comme le délai de grâce) du fichier de quotas. L'argument addr est un
               pointeur sur une structure dqinfo. Cette structure est définie dans <sys/quota.h> de  la  manière
               suivante :

                   /* uint64_t est un entier non signé 64 bits
                      uint32_t est un entier non signé 32 bits */

                   struct dqinfo {          /* Définie depuis le noyau 2.4.22 */
                       uint64_t dqi_bgrace; /* Temps avant qu'une limite douce sur
                                               les blocs ne devienne impérative */

                       uint64_t dqi_igrace;    /* Temps avant qu'une limite douce sur
                                                  les inœuds ne devienne impérative */
                       uint32_t dqi_flags;     /* Attributs pour le fichier de quotas
                                                  (DQF_*) */
                       uint32_t dqi_valid;
                   };

                   /* Bits pour dqi_flags */

                   /* Format de quota QFMT_VFS_OLD */

                   #define V1_DQF_RSQUASH   1   /* Activer « root squash » */

                   /* Les autres formats de quotas n'ont pas de bits dqi_flags définis */

                   /* Attributs de dqi_valid qui indiquent quels champs
                      de la structure dqinfo sont valables. */

                   # define IIF_BGRACE 1
                   # define IIF_IGRACE 2
                   # define IIF_FLAGS  4
                   # define IIF_ALL        (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)

               Le  champ dqi_valid de la structure dqinfo indique les entrées de la structure qui sont valables.
               Le noyau remplit actuellement toutes les entrées de la structure dqinfo et les marque comme étant
               valables dans le champ dqi_valid. L'argument id est ignoré.

       Q_SETINFO
               Définir les informations au sujet du fichier de quotas. L'argument addr devrait être un  pointeur
               vers  une  structure dqinfo. Le champ dqi_valid de la structure dqinfo indique quelles entrées de
               la structure ont été définies par l'appelant. Cette opération remplace les opérations  Q_SETGRACE
               et  Q_SETFLAGS  de  l'interface  antérieure  de quotas. L'argument id est ignoré. Cette opération
               nécessite le privilège CAP_SYS_ADMIN.

       Q_GETFMT
               Obtenir le format de quotas utilisé sur le système de fichiers spécifié. L'argument addr  est  un
               pointeur sur un tampon de 4 octets qui contient le numéro du format.

       Q_SYNC  Met à jour la copie sur disque de l'utilisation des quotas sur un système de fichiers. Si special
               vaut  NULL,  alors  tous  les systèmes de fichiers avec des quotas activés sont synchronisés. Les
               arguments addr et id sont ignorés.

       Q_GETSTATS
               Récupère des statistiques et d'autres informations génériques  sur  le  sous-système  de  quotas.
               L'argument  addr doit être un pointeur sur une structure dqstats dans laquelle les données seront
               stockées. Cette structure est définie dans  <sys/quota.h>.  Les  arguments  special  et  id  sont
               ignorés.  Cette  opération  est obsolète et n'est plus acceptée par les noyaux récents ; elle est
               remplacée par les fichiers dans /proc/sys/fs/quota/, qui contiennent les informations.

       Pour des systèmes de fichiers XFS qui utilisent le gestionnaire de quotas  XFS  (XFS  Quota  Manager,  ou
       XQM), les commandes ci-dessus doivent être remplacées par les commandes suivantes :

       Q_XQUOTAON
               Activer  les  quotas  sur  un  système  de  fichiers  XFS.  XFS permet d'activer et désactiver le
               renforcement des limites avec la gestion des quotas. Par conséquent, XFS attend qu'addr  soit  un
               pointeur   sur  un  unsigned  int  qui  contient  soit  les  attributs  XFS_QUOTA_UDQ_ACCT  et/ou
               XFS_QUOTA_UDQ_ENFD   (pour   les   quotas    d'utilisateur),    ou    XFS_QUOTA_GDQ_ACCT    et/ou
               XFS_QUOTA_GDQ_ENFD  (pour  les  quotas de groupe), comme défini dans <xfs/xqm.h>. Cette opération
               nécessite le privilège CAP_SYS_ADMIN.

       Q_XQUOTAOFF
               Désactiver les quotas pour un système de fichiers  XFS.  Comme  pour  Q_QUOTAON,  le  système  de
               fichier  XFS attend un pointeur vers un unsigned int qui spécifie si le décompte des quotas et/ou
               le renforcement  des  limites  doit  être  désactivé.  Cette  opération  nécessite  le  privilège
               CAP_SYS_ADMIN.

       Q_XGETQUOTA
               Obtenir les limites actuelles et l'utilisation actuelle de l'espace disque pour l'utilisateur id.
               L'argument  addr  est un pointeur sur une structure fs_disk_quota (définie dans <xfs/xqm.h>). Les
               utilisateurs non privilégiés ne peuvent connaître que leurs propres quotas ; un utilisateur  avec
               les droits CAP_SYS_ADMIN peut connaître les quotas de tous les utilisateurs.

       Q_XSETQLIM
               Définir  les  informations  de quotas pour l'utilisateur id. L'argument addr contient un pointeur
               vers une structure  fs_disk_quota  (définie  dans  <xfs/xqm.h>).  Cette  opération  nécessite  le
               privilège CAP_SYS_ADMIN.

       Q_XGETQSTAT
               Renvoie  une  structure fs_quota_stat contenant des informations de quotas spécifiques au système
               de fichiers XFS. Ceci est utile pour  savoir  combien  d'espace  est  utilisé  pour  stocker  les
               informations  sur  les  quotas,  ainsi  que  pour  connaître l'état activé ou non des quotas d'un
               système de fichiers local XFS spécifique.

       Q_XQUOTARM
               Libère l'espace disque pris par les quotas sur le disque. Les quotas doivent avoir été désactivés
               au préalable.

       Il n'existe pas de commande équivalente à Q_SYNC pour XFS puisque  sync(1)   écrit  les  informations  de
       quotas  sur  le  disque  (en  plus  des autres méta-données du système de fichiers qui sont écrits sur le
       disque).

VALEUR RENVOYÉE

       L'appel renvoie zéro s'il réussit, ou -1 s'il échoue auquel cas errno contient le code d'erreur.

ERREURS

       EFAULT addr ou special n'est pas valable.

       EINVAL cmd ou type n'est pas valable.

       ENOENT Le fichier spécifié par special ou addr n'existe pas.

       ENOSYS Le noyau a été compilé sans l'option CONFIG_QUOTA.

       ENOTBLK
              special n'est pas un périphérique bloc.

       EPERM  L'appelant ne possède pas le privilège nécessaire (CAP_SYS_ADMIN)  pour l'opération demandée.

       ESRCH  Aucun quota de disque n'est imposé pour l'utilisateur spécifié. Les quotas n'ont pas  été  activés
              sur ce système de fichiers.

       Si cmd vaut Q_SETQUOTA, quotactl() peut aussi définir errno ainsi :

       ERANGE Les limites spécifiées sont en dehors de l'intervalle autorisé for le format de quotas.

       Si cmd vaut Q_QUOTAON, quotactl() peut aussi définir errno ainsi :

       EACCES Le  fichier  de  quotas  pointé  par  addr existe, mais n'est pas un fichier normal ; ou alors, le
              fichier de quotas pointé par addr existe, mais n'est pas dans le système de  fichiers  pointé  par
              special.

       EBUSY  Tentative de Q_QUOTAON, mais un autre Q_QUOTAON a déjà été réalisé.

       EINVAL Le fichier de quotas est corrompu.

       ESRCH  Le format de quotas spécifié n'a pas été trouvé.

VOIR AUSSI

       quota(1), getrlimit(2), quotacheck(8), quotaon(8)

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des
       instructions     pour     signaler     des     anomalies    peuvent    être    trouvées    à    l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe      Blaess      <http://www.blaess.fr/christophe/>      (1996-2003),       Alain       Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de  traduction de
       Debian (2006-2009).

       Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org>  ou  par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».

Linux                                             16 juin 2010                                       QUOTACTL(2)