Comment définir les quotas du système de fichiers (disque) sur Ubuntu
Le quota du système de fichiers est une fonctionnalité intégrée standard trouvée dans le noyau Linux. Les quotas déterminent la quantité d'espace dont un fichier doit disposer pour prendre en charge les activités des utilisateurs. Les quotas de disque limitent également le nombre de fichiers qu'un utilisateur peut créer sur le système.
Les systèmes de fichiers qui prennent en charge le système de quotas incluent xfs, ext2, ext4 et ext3 pour n'en citer que quelques-uns. L'attribution des quotas est spécifique au système de fichiers et à chaque utilisateur. Cet article contient tout ce que vous devez savoir sur l'utilisation du système de fichiers de quota dans un environnement Ubuntu multi-utilisateurs.
L'hypothèse ici est que vous utilisez le système Ubuntu avec un utilisateur (tecmint) disposant des droits sudo. Les idées partagées ici peuvent fonctionner sur n'importe quelle distribution Linux tant que vous utilisez la bonne technique d'implémentation.
Étape 1 : Installer Quota dans Ubuntu
Pour que les quotas soient prêts et utilisables, installez l'outil de ligne de commande quota à l'aide de la commande apt, mais avant cela, vous devez mettre à jour les packages logiciels système.
sudo apt update
Utilisez maintenant la commande suivante pour installer le package quota sur Ubuntu.
sudo apt install quota
Appuyez sur Y
, puis sur ENTER pour démarrer le processus d'installation.
Confirmez la version d'installation en exécutant la commande ci-dessous. Votre numéro de version peut différer de ce que vous voyez ci-dessous.
quota --version
Étape 2 : Installation du module pour Quota Kernel
Pour ceux qui exécutent un système virtuel basé sur le cloud, l'installation par défaut d'Ubuntu peut manquer les modules du noyau qui prennent en charge l'utilisation des quotas. Vous devez confirmer à l'aide de l'outil de recherche et vous assurer que les deux modules, quota_v1 et quota _v2, se trouvent dans le répertoire /lib/modules.
find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'
Cela devrait être le résultat de la commande ci-dessus.
Ne vous inquiétez pas des versions du noyau tant que les deux modules sont présents. S'il n'est pas trouvé, utilisez la commande suivante pour installer les modules de noyau de quota comme indiqué.
sudo apt install linux-image-extra-virtual
Vous obtiendrez les bons modules dont vous avez besoin pour la mise en œuvre des quotas.
Étape 3 : mise à jour des options de montage du système de fichiers
Pour que les quotas soient actifs sur un système spécifique, celui-ci doit être monté avec les options de quota associées. Vous pouvez le faire en mettant à jour l'entrée du système de fichiers trouvée dans le fichier /etc/fstab.
sudo nano /etc/fstab
Vous devriez être prêt à modifier le fichier de manière appropriée. La différence entre un fichier fstab et un fichier de bureau réside dans la façon dont le système de fichiers /
ou racine représente l'intégralité de l'espace disque. Remplacez la ligne (/)
qui pointe vers le système racine par les lignes ci-dessous.
LABEL=cloudimg-rootfs / ext4 usrquota,grpquota 0 0
Les lignes changeront pour permettre au userquota et au grpquota d'être accessibles. Vous pouvez en laisser un qui ne fait pas partie de la configuration finale. Si le fstab avait des options, ajoutez les nouvelles options à la fin de la ligne. Pendant que vous effectuez l'ajout, séparez les nouveaux éléments par une virgule mais sans espace entre eux.
Remontez le système de fichiers pour que les modifications prennent effet.
sudo mount -o remount /
REMARQUE : vérifiez qu'il n'y a aucun espace entre les options dans /etc/fstab pour éviter de telles erreurs.
mount: /etc/fstab: parse error
La vérification de l'utilisation de nouvelles options lors du montage du système de fichiers dans le fichier /proc/mounts se fait via grep. La commande affiche l'entrée du système de fichiers racine dans le fichier.
sudo cat /proc/mounts | grep ' / '
À partir du résultat, vous pouvez voir les deux options que nous avons configurées. Il est temps d'activer le système de quotas.
Étape 4 : Activation des quotas de disque sur Ubuntu
Tout d’abord, vous devez exécuter la commande quotacheck.
sudo quotacheck -ugm /
La commande crée deux fichiers, un utilisateur de quota et un groupe de quota, contenant des informations sur la limite et l'utilisation du système de fichiers. Ces fichiers doivent être présents avant de commencer à utiliser le quota.
Voici une définition des paramètres :
-u
: symbolise qu'un fichier de quota basé sur l'utilisateur sera créé.-g
: indique qu'un fichier de quotas basé sur un groupe sera créé.-m
: désactive le remontage du système de fichiers en lecture seule tout en donnant des résultats précis dans un environnement où l'utilisateur continue de sauvegarder les fichiers. L'option m n'est pas obligatoire lors de l'installation.
Lorsqu'il n'est pas nécessaire d'activer l'utilisation de quotas basés sur l'utilisateur ou le groupe, il n'est pas nécessaire d'exécuter l'option quotacheck. Confirmez-le en répertoriant le répertoire racine à l'aide de la commande ls.
ls /
Exemple de sortie
aquota.group bin dev home initrd.img.old lib64 media opt root sbin srv tmp var vmlinuz.old
aquota.user boot etc initrd.img lib lost+found mnt proc run snap sys usr vmlinuz
A défaut d'inclure les paramètres u
et g
dans la commande quotacheck, les fichiers correspondants seront manquants.
Nous sommes maintenant prêts à activer le quota sur le système de fichiers racine (/)
avec la commande suivante.
sudo quotaon -v /
Étape 5 : configurer les quotas pour un seul utilisateur
Nous pouvons utiliser les commandes edquota et setquota pour les définir pour des utilisateurs ou des groupes.
Utiliser edquota
Les commandes edquota éditent les quotas, par exemple, nous pouvons éditer un quota appartenant à un utilisateur tecmint en utilisant :
sudo edquota -u tecmint
L'utilisation de l'option -u
spécifie que le quota appartient à un utilisateur. Utilisez l'option -g
si vous devez modifier un quota appartenant à un groupe. La commande ouvrira un fichier en utilisant l'éditeur de texte de votre choix.
La sortie répertorie le nom d'utilisateur, l'uid, le système de fichiers avec les quotas actifs et l'utilisation des blocs et des inodes. Un quota basé sur les inodes limite le nombre de fichiers et de répertoires que les utilisateurs peuvent créer, quelle que soit la taille qu'ils utilisent sur le disque. La plupart des administrateurs préfèrent le quota basé sur les blocs qui contrôle l'espace disque.
REMARQUE : L'utilisation de blocs ne montre pas comment elle peut changer en fonction de différents facteurs tels que l'outil de ligne de commande qui les signale. Dans le cadre des quotas contextuels sur Ubuntu, nous pouvons supposer qu'un seul bloc équivaut à un kilo-octet d'espace disque.
En utilisant la ligne de commande ci-dessus, l'utilisateur utilisera 2 032 blocs, ce qui équivaut à 2 032 Ko d'espace sur /dev/sda1. La valeur 0 désactive les limites souples et strictes.
Chaque ensemble de quotas permet de définir des limites souples et strictes. Un utilisateur qui dépasse la limite souple peut dépasser son quota, mais il n'est pas interdit d'utiliser plus d'espaces ou d'inodes. Dans un tel cas, l'utilisateur dispose de sept jours pour utiliser son espace limité, sans quoi il sera difficile de sauvegarder ou de créer des fichiers.
Une limite stricte signifie que la création de nouveaux blocs ou inodes s'arrête dès que vous atteignez la limite. Les utilisateurs signaleront avoir vu des avertissements ou des erreurs lors de l'exécution de tâches régulières.
Nous pouvons mettre à jour le quota de bloc de Tecmint pour avoir une limite souple de 100 Mo et de 110 Mo pour la limite stricte.
Après l'édition, fermez le fichier et vérifiez les nouveaux paramètres de limite de quota utilisateur à l'aide de la commande quota.
sudo quota -vs tecmint
REMARQUE : pour donner à vos utilisateurs la possibilité d'analyser leurs quotas sans appeler la commande sudo, ils doivent avoir accès à la lecture des fichiers de quota pendant le processus. phase de création à la quatrième étape. Un moyen simple de le faire consiste à créer un groupe d’utilisateurs et à lui accorder l’accès afin que vous puissiez y ajouter des utilisateurs.
Utiliser setquota
setquota met à jour les informations de quota à l'aide d'une seule commande sans aucune configuration interactive. La commande nécessite le nom d'utilisateur et le réglage des limites logicielles et matérielles que le bloc et l'inode utiliseront. Vous devrez également déclarer le système de fichiers que le quota utilisera.
sudo setquota -u tecmint 200M 220M 0 0 /
La commande double les limites de quota par bloc à 200 mégaoctets et 220 mégaoctets. Les deux 0 0
indiquent que les limites strictes et souples ne sont pas définies, c'est une exigence même lorsqu'il n'est pas nécessaire de définir des quotas basés sur les inodes.
Comme d'habitude, utilisez la commande quota pour vérifier votre progression.
sudo quota -vs tecmint
Étape 6 : Générer des rapports sur les quotas
La génération d'un rapport de quota doit indiquer l'utilisation de tous les utilisateurs. La commande repquota est utilisée.
sudo repquota -s /
Le résultat ci-dessus est un rapport sur le système de fichiers racine /
. Le -s
demande à repquota de donner les résultats dans un format lisible par l'homme.
Le délai de grâce de blocage par défaut est de 7 jours. La colonne de grâce alerte l'utilisateur du nombre de jours avant le refus d'accès au disque de ressources.
Étape 7 : définir les délais de grâce de configuration
La période de grâce est la durée pendant laquelle un utilisateur obtient l'autorisation de travailler au-delà de la durée par défaut.
sudo setquota -t 864000 864000 /
La commande demande au bloc et à l'inode d'avoir une période de grâce de 864 000 secondes, soit l'équivalent de 10 jours. Le paramètre affectera tous les utilisateurs, par conséquent, les valeurs doivent être définies même lorsqu'il n'y aura aucune utilisation de blocs et d'inodes. La valeur du temps doit être en secondes.
Confirmez les modifications et voyez si elles ont pris effet à l'aide de la commande :
sudo repquota -s /
Messages d'erreur courants
quotaon: cannot find //aquota.group on /dev/vda1 [/]
quotaon: cannot find //aquota.user on /dev/vda1 [/]
L'erreur ci-dessus est courante si vous essayez d'activer des quotas à l'aide de la commande qoutaon avant de tenter de vérifier l'état d'un quota à l'aide de la commande quotacheck.
quotaon: using //aquota.group on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.
quotaon: using //aquota.user on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.
Cette erreur indique à l'administrateur que le noyau ne le prend pas en charge ou que vous pourriez avoir une mauvaise version sur la machine (nous avons quota_v1 et quota_v2). Pour Ubuntu, de telles erreurs sont typiques sur un serveur virtuel basé sur le cloud.
Corrigez l'erreur en installant le package Linux-image-extra-virtual à l'aide de la commande apt.
quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //quota.user: No such file or directory
L'erreur est notable lorsque l'utilisateur actuel n'est pas autorisé à lire les fichiers de quota. En tant qu'administrateur, vous devez uniquement apporter les modifications d'autorisation appropriées ou utiliser sudo lorsque vous devez accéder aux fichiers d'un système de quotas ou d'un fichier.
Conclusion
En haut de l'article, nous avons commencé avec les outils de ligne de commande quota et la vérification de la version du noyau, puis nous sommes allés plus loin en expliquant comment configurer un quota basé sur des blocs pour un seul utilisateur et comment générer un rapport sur l'utilisation du quota du système de fichiers.
L'article couvre également les erreurs courantes et comment les éviter en utilisant un package supplémentaire ou en vérifiant la version du noyau sur votre système.