{{tag>administration disque_dur système BROUILLON}} ---- ====== 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 [[:sudo|droits d'administration]]. * Disposer d'une connexion à Internet configurée et activée. ===== Installation ===== Pour utiliser les quotas, vous devez [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://quota|quota]]**. ===== Configuration du système ===== Vous devez [[:tutoriel:comment_editer_un_fichier|é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 : # 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 : # 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 ==== 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 [[http://www.themanualpage.org/man/man8/quotaon.8.php|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. Vous pouvez utiliser votre [[:éditeur de texte]] favori en précédant edquota par EDITOR="nomEditeur" 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 utilisateur2Cette 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 ==== FIXME sudo quotaoff -avug Pour une explication des options, voir [[http://www.themanualpage.org/man/man8/quotaon.8.php|cette page]] (en anglais). ===== 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 ===== * **(en)** [[http://www.debianadmin.com/implement-and-manage-disk-quotas-in-linux.html|Implement and Manage Disk Quotas in Linux]] * **(fr)** [[http://www.lea-linux.org/documentations/index.php/Admin-admin_fs-quotas|Gestion des quotas]], //tutoriel sur Léa-Linux// * **(en)** [[http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch28_:_Managing_Disk_Usage_with_Quotas|Quick HOWTO : Ch28 : Managing Disk Usage with Quotas]] * **(en)** [[http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/admin-primer/s1-storage-quotas.html|Implementing Disk Quotas]], //documentation Red Hat// ---- //Contributeurs : [[:utilisateurs:MulX]], [[:utilisateurs:marc31]] ...//