Les quotas sont une option du système d'exploitation qui vous permet de limiter la quantité d'espace disque et/ou le nombre de fichiers auxquels ont droit un utilisateur ou tous les utilisateurs d'un même groupe, sur un système de fichiers donné. On les utilise la plupart du temps sur les systèmes en temps partagé où il est souhaitable de limiter la quantité de ressources allouée à un utilisateur ou à un groupe. Cela évitera qu'un utilisateur ou un groupe d'utilisateur consomme tout l'espace disque.
Avant d'essayer de mettre en place des quotas disque, il est nécessaire de s'assurer que le noyau est configuré pour les quotas. Cela se fait en ajoutant la ligne suivante dans votre fichier de configuration du noyau:
Cette option n'est pas activée par défaut dans le
noyau GENERIC
de base, vous devrez donc
configurer, compiler et installer un noyau sur-mesure pour
utiliser les quotas disque. Reportez-vous au chapitre Chapitre 8, Configurer le noyau de FreeBSD pour plus d'informations sur la
configuration du noyau.
Ensuite vous devrez activer les quotas disques dans le
fichier /etc/rc.conf
. Pour cela, ajoutez
la ligne:
Pour un contrôle plus fin des quotas au démarrage
du système, il existe une variable supplémentaire de
configuration. Normalement au démarrage,
l'intégrité des quotas sur chaque système de
fichiers est vérifiée par le programme
quotacheck(8). Ce programme s'assure que les données
de la base de données des quotas correspondent bien aux
données présentes sur le système de
fichiers. C'est un processus consommateur en temps qui
affectera considérablement la durée de
démarrage du système. Si vous désirez passer
cette étape, une variable dans
/etc/rc.conf
est prévue à cet
effet:
Vous devez enfin éditer le fichier
/etc/fstab
pour activer les quotas
système de fichiers par système de fichiers. C'est
là que vous pouvez soit activer les quotas par utilisateur ou
par groupe soit les pour les deux sur tous vos systèmes
de fichiers.
Pour activer les quotas par utilisateur sur un système
de fichiers, ajouter l'option userquota
dans le champ d'options sur l'entrée de
/etc/fstab
pour le système de fichiers
sur lequel vous voulez activer les quotas. Par
exemple:
De même, pour activer les quotas par groupe, utilisez
l'option groupquota
à la place de
userquota
. Pour activer à la fois les quotas
par utilisateur et par groupe, modifiez l'entrée de la
façon suivante:
Par défaut, les fichiers où sont définis les
quotas dans le répertoire racine du système de fichiers
sous les noms quota.user
et
quota.group
, respectivement pour les
quotas utilisateur et les quotas par groupe. Consultez
la page de manuel fstab(5) pour plus d'information.
Bien que la page de manuel fstab(5) indique que vous
pouvez spécifier un autre emplacement pour ces fichiers,
cela n'est pas recommandé parce que les divers utilitaires
qui gèrent les quotas ne semblent pas les prendre correctement
en compte.
A ce point vous devriez redémarrer votre système
avec votre nouveau noyau. La procédure
/etc/rc
exécutera automatiquement les
commandes nécessaires pour créer les fichiers de quotas
initiaux pour tous les quotas que vous avez définis
dans /etc/fstab
, vous n'avez donc pas
besoin de créer à la main de fichiers de
quotas vides.
Vous ne devriez pas avoir à exécuter les commandes quotacheck(8), quotaon(8), ou quotaoff(8) manuellement. Cependant, vous pouvez lire leur page de manuel pour vous familiariser avec leur rôle.
Une fois que vous avez activé les quotas sur votre système, assurez-vous que cela fonctionne correctement. Une manière simple de le faire est d'exécuter:
#
quota -v
Vous devriez obtenir une ligne résumant l'utilisation disque avec les quotas actuellement définis pour chaque système de fichiers sur lesquels il y a des quotas.
Vous êtes maintenant prêt à définir les quotas avec la commande edquota(8).
Vous disposez de différentes options pour instaurer les quotas d'espace disque alloué à un utilisateur ou à un groupe, et le nombre de fichiers qu'ils peuvent créer. Vous pouvez baser les limitations sur l'espace disque alloué (quotas en nombre de blocs) ou sur le nombre de fichiers (quotas en inode) ou les deux. Ces options peuvent être divisées en deux catégories: les limites strictes ou souples.
Une limite stricte ne peut être dépassée. Une fois qu'un utilisateur atteint sa limite stricte, il ne pourra plus rien allouer sur le système de fichiers en question. Par exemple, si l'utilisateur a droit à une limite stricte de 500 Ko sur un système de fichiers et en utilise 490 Ko, il ne pourra allouer que 10 Ko supplémentaires. Une tentative d'allouer 11 Ko échouerait.
Une limite souple peut être dépassée pour une période de temps restreinte. C'est ce que l'on appelle le délai de grâce, qui est d'une semaine par défaut. Si un utilisateur dépasse cette limite au delà du délai de grâce, cette limite devient stricte, et plus aucune allocation ne sera possible. Quand l'utilisateur redescend en dessous de la limite souple, le délai de grâce est à nouveau réaccordé.
Ce qui suit est un exemple de ce que vous pourrez voir
en utilisant la commande edquota(8). Quand vous invoquez
la commande edquota(8), vous vous retrouvez dans
l'éditeur défini par la variable d'environnement
EDITOR
, ou sous vi
si la variable d'environnement EDITOR
n'est
pas positionnée, ce qui vous permet d'éditer les
quotas.
#
edquota -u test
Vous verrez normalement deux lignes pour chaque système de fichiers sur lequel il y a des quotas. Une ligne pour les quotas de blocs, et une autre pour la limite d'inode. Modifiez simplement les valeurs que vous voulez mettre à jour. Par exemple, pour augmenter la limite de blocs accordée à cet utilisateur de 50 pour la limite souple et de 75 pour la limite stricte à 500 pour la limite souple et 600 pour la limite stricte, modifiez:
en:
Les nouveaux quotas seront en service dès que vous quitterez l'éditeur.
Il est parfois souhaitable de définir des quotas
pour une plage d'UIDs (identifiants utilisateur). Cela
peut être réalisé avec l'option
-p
de la commande edquota(8).
Définissez d'abord les quotas pour un seul utilisateur, et
puis exécutez
edquota -p protouser startuid-enduid
.
Par exemple, si l'utilisateur test
dispose des quotas désirés, la commande suivante peut
être utilisée pour appliquer ces quotas pour les UIDs
de 10000 à 19999:
#
edquota -p test 10000-19999
Pour plus d'informations consultez la page de manuel edquota(8).
Vous pouvez soit utiliser la commande quota(1) soit la commande repquota(8) pour consulter les quotas et l'utilisation des disques. La commande quota(1) peut être employée pour connaître les quotas et l'utilisation des disques pour un utilisateur et un groupe. Un utilisateur ne peut consulter que ses propres quotas et ceux d'un groupe auquel il appartient. Seul le super-utilisateur peut consulter les quotas et l'usage disque de tous les utilisateurs et groupes. La commande repquota(8) permet d'obtenir un résumé de tous les quotas et l'utilisation disque pour les systèmes de fichiers sur lesquels il y a des quotas.
Ce qui suit est un extrait de la sortie de la commande
quota -v
pour un utilisateur pour lequel
on a défini des quotas sur deux systèmes de
fichiers.
Sur le système de fichiers /usr
dans l'exemple ci-dessus, l'utilisateur occupe 15 Ko de
plus que la limite de 50 Ko qui lui est allouée et
dispose d'un délai de grâce de 5 jours. Notez
l'astérisque *
qui indique que
l'utilisateur dépasse actuellement son quota.
Normalement les systèmes de fichiers sur lesquels
l'utilisateur n'occupe pas d'espace n'apparaissent pas
dans la sortie de la commande quota(1), même s'il a des
quotas sur ces systèmes de fichiers. L'option
-v
listera ces systèmes de fichiers, comme
/usr/var
dans l'exemple ci-dessus.
Les quotas sont gérés par le sous-système de gestion des quotas sur le serveur NFS. Le démon rpc.rquotad(8) fournit les informations sur les quotas à la commande quota(1) des clients NFS, permettant aux utilisateurs sur ces machines de consulter l'utilisation des quotas qui leur sont alloués.
Activez rpc.rquotad
dans
/etc/inetd.conf
de la façon
suivante:
Puis redémarrez inetd
:
#
kill -HUP `cat /var/run/inetd.pid`
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.