Donner une taille max à un dossier sous Linux
Je vous ai montré comment créer un serveur email, un serveur ftp.
Et maintenant nous allons nous intéresser aux montages et aux quotas ...
Pourquoi ?
Et bien tout simplement pour définir des tailles max de dossier dans votre serveur ?
Que ça soit pour des emails ou des fichiers quelconques, nous allons apprendre ici à brider vos utilisateurs pour limiter les ressources de votre serveur ...
Comment va t'on faire ?
Nous allons créer tout d'abord un fichier qui aura la taille que nous voulons définir (la bride).
Ce fichier sera alors monté comme "point de montage" ....
je ne suis pas très clair, mais c'est difficile à expliquer, si vous lisez la suite vous comprendrez mieux.
En gros nous allons créer un fichier de 10 méga, ce fichier pointera vers un dossier, plus vous remplirez le dossier, plus c'est en réalité ce fichier là qui se remplira ... dès lors que la limite sera atteinte, vous ne pourrez plus rien mettre dans votre dossier.
Dans un premier temps nous allons créer notre fichier de stockage :
root:/home# dd if=/dev/zero of=/home/utilisateur1 bs=4056 count=50000
Ici j'ai créé un fichier 'utilisateur1' avec 50000 bloc de 4056 bit (je vous laisse faire le calcul, il y en a pour environs 180 mo)
Nous allons donc créer maintenant une "partitions" avec ce fichier.
Pour schématiser, dite vous que vous avez créé de l'espace, et que maintenant nous allons donner / allouer cet espace à une "clé usb" (je caricature) :
mke2fs -j /home/utilisateur1
Et maintenant pour rester dans la caricature, nous allons brancher notre "clé usb" à notre linux, pour pouvoir l'utiliser.
Pour cela nous allons donc dire que cette "clé usb", qu'elle correspond au dossier que nous voulons limiter.
Ici nous allons donc indiquer à notre clé usb "/home/utilisateur1" d'encapsuler ce que l'on mettra dans "/mesutilisateurs/utilisateur1/".
Et alors, elle dira fuck you si l'utilisateur met trop de fichier, occupant ainssi tout l'espace et atteignant la taille max que nous avons défini.
mount -o loop /home/utilisateur1 mesutilisateurs/utilisateur1/
Voilà c'est fait ! vous pouvez avoir une vue d'ensemble de vos "espaces" en saisissant :
df -ah
Le résultat devrait ressembler à peu près à ça :
Sys. fich. Taille Util. Dispo Uti% Monté sur
rootfs 9,9G 2,5G 7,0G 26% /
sysfs 0 0 0 - /sys
proc 0 0 0 - /proc
udev 10M 0 10M 0% /dev
devpts 0 0 0 - /dev/pts
tmpfs 201M 112K 201M 1% /run
/dev/xvda1 9,9G 2,5G 7,0G 26% /
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 501M 0 501M 0% /run/shm
/dev/loop1 188M 5,6M 173M 4% /mesutilisateurs/utilisateur1
On peut voir l'espace utilisé, disponible, et total, le nom des points de montage et le repertoire /dossier correspondant.
Maintenant, si vous souhaitez supprimer ce montage, la commande est :
umount -l /dev/loop1
/dev/loop1 étant le "point de montage", à remplacer par le votre.