Mise en place des quotas

Mise en place des quotas

Objectif : Les quotas UNIX peuvent s'appliquer sur des utilisateurs et/ou des groupes d'utilisateurs. Ils limitent le nombre de fichiers et/ou la taille cumulée de ces fichiers. Ils s'appliquent sur des systèmes de fichiers (à partir d'un point de montage) et non pas sur la totalité de l'arborescence.

Les quotas sont constitués d'une limite douce (qui peut être dépassée pendant une période de grâce de 7 jours) et d'une limite dure qui ne peut pas être dépassée. A L'issue de la période de grâce l'état courant devient une limite dure.

Formatez /home en ext4

Si la partition /home est formatée en mode xfs (à vérifier avec mount), nous devons la passer en ext4 avec les étapes ci-dessous :

En root
# sauvegarde de /home
rsync -av /home/ /tmp/home.backup/

# repérer la partition de /home
mount | fgrep /home

# repérer et copier dans une variable l'UUID de la partition /home
cat /etc/fstab | fgrep /home
UUID_HOME="...."

# démontage
umount /home

# formatter en ext4 (en gardant l'UUID)
mkfs.ext4 -U $UUID_HOME fichier_spécial

# changer, dans le fichier /etc/fstab, xfs en ext4
sed -i -e '/home/s/xfs/ext4/' /etc/fstab

# remonter
mount /home

# vérifier que nous sommes en ext4
mount | fgrep /home

# récupération de /home
rsync -av /tmp/home.backup/ /home/ 

# supprimer la sauvegarde
rm -rf /tmp/home.backup/

Préparer les quotas

La mise en place est constituée de quelques étapes :

  1. Nous allons poser des quotas sur la partition des comptes utilisateurs (/home).
  2. Modifiez (ou ajoutez) la ligne en question dans le fichier /etc/fstab pour ajouter les deux options usrquota et grpquota. L'exemple ci-dessous est donné à titre d'illustration :
    .....   /home   ext4   defaults,usrquota,grpquota   1 2
    
  3. Pour profiter de ces options, nous allons remonter (ou monter) /home :
    mount /home -o remount
    
    Vérifiez ensuitre avec mount que les options de quota sont bien actives pour /home.
  4. Le mécanisme des quotas est basé sur des fichiers situés à la racine du système de fichiers et qui contiennent les statistiques d'utilisation pour chaque utilisateur et chaque groupe. Pour préparer ces fichiers nous allons utiliser la commande quotacheck :
    quotacheck  -c -u -g -m -v -a
    
    Les options : -c : création, -ug : quotas groupe et utilisateur, -m : même si le périphérique est utilisé, -a : pous tous les points de montage listés dans /etc/fstab et soumis à quota. Cette commande est susceptible de prendre beaucoup de temps si le disque est important. Elle peut également être utilisée périodiquement pour actualiser les fichiers de quotas.
  5. A l'issue, nous obtenons deux fichiers :
    ls -l /home/aquota.*
    
  6. Nous pouvons maintenant activer le mécanisme des quotas avec la commande :
    quotaon -a
    
  7. Vérifiez que les quotas fonctionnent chez les utilisateurs avec la commande quota -v.
  8. En tant qu'utilisateur etud, créez des fichiers et ré-utilisez la commande quota :
    su - etud <<FIN
    dd if=/dev/zero of=/home/etud/MonFichier1 bs=1M count=100
    dd if=/dev/zero of=/home/etud/MonFichier2 bs=1M count=100
    quota -v
    exit
    FIN
    
  9. Pour terminer, vous pouvez obtenir un état des quotas de chaque utilisateur avec
    repquota -a
    

Fixer les quotas

Nous pouvons maintenant fixer un quota avec la commande :

setquota -u user block-soft block-hard inode-soft inode-hard /tmp/disk1

Explications :

block-soft
limite douce sur le nombre de blocs utilisés (peut être dépassée pendant la période de grâce : 7 jours)
block-hard
limite dure sur le nombre de blocs utilisés (ne peut pas être dépassée)
inode-soft
limite douce sur le nombre de fichiers (peut être dépassée pendant la période de grâce : 7 jours)
inode-hard
limite dure sur le nombre de fichiers (ne peut pas être dépassée)

Travail à faire : Testez les limites douces et dures d'un utilisateur et explorez les possibilités de la commande setquota.

Utilitaires

  • Vous pouvez également fixer le quota d'un utilisateur de manière interactive en utilisant la commande ci-dessous. Cette commande ouvre un éditeur de texte dans lequel vous pouvez modifier les limites douces et dures de l'utilisateur.
    edquota user
    
  • Vous pouvez également copier les limites d'un utilisateur à un autre avec :
    edquota -p user-source user-destination