Apportez votre aide…
Gestion des quotas
La gestion des quotas par utilisateur est utile au niveau des serveurs. Si vous avez créé plusieurs comptes utilisateurs et que vous ne voulez pas qu'un seul utilisateur puisse occuper tout l'espace disque, il faut alors définir des quotas qui apporteront une limitation en terme d'espace disque utilisé.
La gestion des quotas peut aussi être utilisée au niveau des groupes. Par exemple, chaque utilisateur du projet Albireo dispose d'un certain espace disque, et le dossier commun du projet Albireo dispose lui aussi d'une taille maximale afin de permettre au projet Denebola d'exister.
Pour que ceci fonctionne, l'option doit être activée dans le noyau. C'est le cas par défaut sous Ubuntu.
Configuration de l'ordinateur d'exemple
L'ordinateur dispose de 3 disques dur : un de 10Go, un de 15Go, et un de 40Go.
Le disque de 10Go contient le système. Il est reconnu comme sda (sda1, sda2).
Le disque de 15Go contient les répertoires des utilisateurs, c'est sur celui-ci que l'on souhaite définir les quotas. il est reconnu comme sdb (sdb1).
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
Installation
Pour utiliser les quotas, vous devez installer le paquet quota.
Configuration du système
Vous devez éditer le fichier /etc/fstab afin d'ajouter usrquota
dans les options pour avoir une gestion au niveau utilisateur, et/ou grpquota
pour une gestion par groupe.
Le fichier /etc/fstab avant la modification :
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # /dev/sda1 -- converted during upgrade to edgy UUID=8840ac3b-7209-4e00-a79e-d393de74e0ca / ext3 defaults,errors=remount-ro 0 1 # /dev/sdb1 -- converted during upgrade to edgy UUID=af16a96e-6ecf-4083-9a77-b21fedf09e5d /home ext3 defaults 0 2 # /dev/sda2 -- converted during upgrade to edgy UUID=6263979f-794c-43c8-a95b-b33627978928 none swap sw 0 0
Après la modification :
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # /dev/sda1 -- converted during upgrade to edgy UUID=8840ac3b-7209-4e00-a79e-d393de74e0ca / ext3 defaults,errors=remount-ro 0 1 # /dev/sdb1 -- converted during upgrade to edgy UUID=af16a96e-6ecf-4083-9a77-b21fedf09e5d /home ext3 defaults,usrquota,grpquota 0 2 # /dev/sda2 -- converted during upgrade to edgy UUID=6263979f-794c-43c8-a95b-b33627978928 none swap sw 0 0
Utilisation
Création des fichiers de quota
Afin de permettre aux quotas de fonctionner, il faut créer un fichier pour les quotas utilisateur, et un autre pour les quotas de groupe, dans la racine du dossier à protéger. Ici il s'agit de /home.
Ces 2 fichiers doivent appartenir à l'utilisateur root
.
aquota.user
sudo touch /home/aquota.group #Création du fichier pour le groupe sudo touch /home/aquota.user #Création du fichier pour l'utilisateur sudo chmod 600 /home/aquota.*
Dans les versions anciennes de Ubuntu le nom des fichiers est légérement différent il faut utiliser :
sudo touch /home/quota.group #Création du fichier pour le groupe sudo touch /home/quota.user #Création du fichier pour l'utilisateur sudo chmod 600 /home/quota.*
Une fois ces fichiers créés, il faut remonter la partition :
sudo mount -o remount /home
ou bien :
sudo mount -a
À noter que la commande quotacheck -cguvf /home
créera automatiquement les fichiers avec les droits ad hoc s'ils n'existent pas.
Initialisation
Il est nécessaire d'initialiser le système de quota via la commande quotacheck
. Cette commande va scanner tout le contenu de la partition et reporter dans /home/quota.* les informations de gestion (espace occupé par les utilisateurs). Il s'agit donc d'une initialisation.
sudo quotacheck -vgum /home
Alternative : initialiser toutes les partitions qui sont affectées par les quotas dans /etc/fstab :
sudo quotacheck -vagum
- -m permet d'autoriser quotacheck de scanner des partitions qui sont accessibles en écriture
- -g Scanne les quotas pour les groupes
- -u Scanne les quotas pour les utilisateurs
- -v permet d'afficher l'avance du scan
- -a cible tous les systèmes de fichiers montés
Activation des quotas
Cette commande est nécessaire pour activer le « monitoring » immédiatement, autrement, la commande edquota retournera toujours la même chose, même après modification du contenu des dossiers soumis aux quotas.
sudo quotaon -avug
Pour une explication des options, voir cette page (en anglais).
Fixation des droits
Il faut comprendre les 4 types de limites possible, la limite "soft" et la limite "hard" ainsi que la limite "block" et la limite "inode".
- La limite soft est une limite que l'utilisateur (ou groupe) peut dépasser pendant un certain laps de temps. Si l'utilisateur n'est pas revenu en dessous de cette limite dans le temps imparti il se voit dépourvu du droit de créer des fichiers. Quand l'utilisateur dépasse cette limite, un message de ce genre apparait :
sdb1: warning, user block quota exceeded.
- La limite hard est une limite que nul ne peut dépasser. Lorsque l'utilisateur veut dépasser cette limite il obtient un message de ce genre :
sdb1: write failed, user block limit reached.
- La limite par block est une limite sur la taille du dossier (généralement la taille du dossier utilisateur). Cette limite utilise la limite soft et hard
- La limite par inode est une limite sur le nombre de fichiers. Cette limite utilise la limite soft et hard
- fixer des droits pour un utilisateur :
sudo edquota -u $user
- fixer des droits pour un groupe :
sudo edquota -g $group
Dans les 2 cas, vous accéderez un éditeur de texte en terminal de type Vim vous permettant d'affecter les droits. La page est organisée en colonnes : voir la copie d'écran ci-dessous.
sudo EDITOR="vim" edquota -u $user
Disk quotas for user test (uid 1006): Filesystem blocks soft hard inodes soft hard /dev/sdb1 9252 8192 10240 6 0 0
La colonne blocks correspond a la taille actuellement utilisé par l'utilisateur
Les colonnes soft & hard correspondent aux limites "block"
La colonne inodes correspond aux nombres de fichier de l'utilisateur
Une fois les quotas définis pour un utilisateur, on peut les répliquer pour d'autres utilisateurs en utilisant l'option -p de la commande edquota.
edquota -p utilisateur1 utilisateur2
Cette commande fixe les même quotas à utilisateur2 que ceux existants pour utilisateur1
Afficher/vérifier les droits
Pour voir les droits sur une partition (ex : /home) :
repquota /home
Pour voir les droits de tous les utilisateurs
repquota -a
Désactivation des quotas
Conseils
- Il est préférable de faire des essais sur une partition de test (différente de /home) si vous ne voulez pas avoir de soucis.
- Fixer des droits à 4.5Go par utilisateur permet de réaliser une sauvegarde directe sur un DVD (sans compression), avec la compression de données, on peut ajouter quelque Go.
Tests
- On peut commencer par fixer des droits de quelque dizaines de Mo, puis créer des fichiers fictifs.
On peut pour cela utiliser la commande dd, par exemple cette commande crée un fichier de 20Mo :
dd if=/dev/zero of=unFichierDe20Mo bs=1M count=20
Voir aussi
- (fr) Gestion des quotas, tutoriel sur Léa-Linux
- (en) Implementing Disk Quotas, documentation Red Hat