Provided by: manpages-fr-dev_3.32d0.2p4-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 fixer 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 fixées 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 actuelles et l'utilisation courante de  l'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 connaitre que leurs propres quotas ; un
               utilisateur avec le privilège CAP_SYS_ADMIN peut connaitre 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 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>).

                   /* 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 courante 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  connaitre
               que  leurs  propres  quotas ;  un utilisateur avec le privilège CAP_SYS_ADMIN peut
               connaitre 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
               connaitre  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).

VALEURS RENVOYÉES

       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.32 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

       Christophe   Blaess   <URL:http://www.blaess.fr/christophe/>   (1996-2003),  Alain  Portal
       <URL: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> ».