Environnement:

srvglus238:~# cat /proc/version
Linux version 2.6.27-vs-2.3.0.35.7 (root@srvglus238)
(gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 Tue Oct 14 17:54:33 CEST 2008

srvglus238:~# cat /etc/debian_version
4.0



1) Vérifier que le support des quotas est bien validé dans le kernel en cours d'utilisation

#srvglus238:/etc# zgrep -i quota /proc/config.gz
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_PRINT_QUOTA_WARNING is not set
CONFIG_QUOTACTL=y

2) Installer le paquet qui va bien

# apt-get install quota

3) Je vais faire le test sur /dev/sdd1 (disque virtuel sdd de 500 Mo que je viens d'ajouter à la vm)

srvglus238:/etc# cat /proc/partitions
major minor  #blocks  name

   8     0    2097152 sda
   8     1    1943833 sda1
   8     2          1 sda2
   8     5     152586 sda5
   8    16    1048576 sdb
   8    17    1044193 sdb1
   8    32    1258291 sdc
   8    33    1253038 sdc1
   8    48     524288 sdd
   8    49     243696 sdd1
   8    50     280576 sdd2

4) Etat des montages actuels

srvglus238:/etc# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 on /usr/share type ext3 (rw,errors=remount-ro)
/dev/sdc1 on /opt type ext3 (rw,errors=remount-ro)
configfs on /sys/kernel/config type configfs (rw)


5) Creation du fichier aquota.user sur sdd1

# mount /dev/sdd1 /test1
# touch /test1/aquota.user
# chmod 600 /test1/aquota.user
# umount /dev/sdd1

6) Modif du /etc/fstab pour prise en compte des quotas sur /dev/sdd1


srvglus238:/etc# cat fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/sda1       /               ext3    defaults,errors=remount-ro 0       1
/dev/sdb1       /usr/share      ext3    defaults,errors=remount-ro 0       1
/dev/sdc1       /opt            ext3    defaults,errors=remount-ro 0       1
/dev/sdd1       /test1          ext3    defaults,usrquota,errors=remount-ro 1       1
/dev/sda5       none            swap    sw              0       0
/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

7) Montage de /dev/sdd1

# mount -a

8) Initialisation et vérif

srvglus238:/etc# quotacheck -auvg
quotacheck: WARNING -  Quotafile /test1/aquota.user was probably truncated. Cannot save quota settings...
quotacheck: Parcours de /dev/sdd1 [/test1] terminé
quotacheck: Old group file not found. Usage will not be substracted.
quotacheck: Vérifié 3 répertoires et 3 fichiers


srvglus238:/etc# ll /test1
total 23
drwxr-xr-x  3 root root  1024 2008-10-20 12:25 .
drwxr-xr-x 29 root root  4096 2008-10-20 12:11 ..
-rw-------  1 root root  6144 2008-10-20 12:25 aquota.user
drwx------  2 root root 12288 2008-10-20 12:09 lost+found

srvglus238:/etc# file /test1/aquota.user
/test1/aquota.user: data

9) Je vais créer un répertoire dans /test1 accessible à l'utilisateur pme

# mkdir /test1/home4pme && chown pme:pme /test1/home4pme

10) Activation des quotas

srvglus238:/# quotaon -v /dev/sdd1
/dev/sdd1 [/test1] : quotas user activés

11) Je vais maintenant définir les limites pour pme

# edquota -u pme

Quotas disque pour user pme (uid 1000) :
 Système de fichiers           blocs       souple     stricte   inodes    souple   stricte
  /dev/sdd1                                 0          9000      10000             0       9000    10000

Soit 9Mo en soft et 10Mo en dur.

12) Je me connecte ensuite sous pme

# su - pme
$ cd /test1/home4pme
$ df -hT /dev/sdd1
/dev/sdd1     ext3    225M  1,1M  213M   1% /test1

Je tente ensuite d'écrire plusieurs fichiers.

Un fichier de 5Ko : OK

pme@srvglus238:/test1/home4pme$ dd if=/dev/zero of=/test1/home4pme/toto0 bs=1024 count=5
5+0 enregistrements lus
5+0 enregistrements écrits
5120 octets (5,1 kB) copiés, 0,00290344 seconde, 1,8 MB/s

Puis un fichier de 5Mo : OK

pme@srvglus238:/test1/home4pme$ dd if=/dev/zero of=/test1/home4pme/toto1 bs=1024 count=5000
5000+0 enregistrements lus
5000+0 enregistrements écrits
5120000 octets (5,1 MB) copiés, 0,0562862 seconde, 91,0 MB/s

pme@srvglus238:/test1/home4pme$ df -hT
Sys. de fich. Type     Tail. Occ. Disp. %Occ. Monté sur
/dev/sda1     ext3    1,9G 1021M  754M  58% /
tmpfs        tmpfs    124M     0  124M   0% /lib/init/rw
udev         tmpfs     10M   60K   10M   1% /dev
tmpfs        tmpfs    124M     0  124M   0% /dev/shm
/dev/sdb1     ext3   1004M  296M  658M  31% /usr/share
/dev/sdc1     ext3    1,2G  504M  641M  45% /opt
/dev/sdd2     ext3    266M   11M  242M   4% /test2
/dev/sdd1     ext3    225M   6,1M  208M   6% /test1

Encore deux fichier de 5Mo: ça ne passe plus

pme@srvglus238:/test1/home4pme$ dd if=/dev/zero of=/test1/home4pme/toto2 bs=1024 count=5000
dd: écriture de `/test1/home4pme/toto2': Débordement du quota d'espace disque
4959+0 enregistrements lus
4958+0 enregistrements écrits
5076992 octets (5,1 MB) copiés, 0,165331 seconde, 30,7 MB/s

pme@srvglus238:/test1/home4pme$ du -hs
9,8M    .


pme@srvglus238:/test1/home4pme$ dd if=/dev/zero of=/test1/home4pme/toto3 bs=1024 count=5000
dd: écriture de `/test1/home4pme/toto3': Débordement du quota d'espace disque
1+0 enregistrements lus
0+0 enregistrements écrits
1 octet (1B) copié, 0,0089327 seconde, 0,0 kB/s


pme@srvglus238:/test1/home4pme$ ls -la
total 10007
drwxr-xr-x 2 pme  pme     1024 2008-10-20 12:52 .
drwxr-xr-x 4 root root    1024 2008-10-20 12:35 ..
-rw-r--r-- 1 root root    5120 2008-10-20 12:52 toto0
-rw-r--r-- 1 pme  pme  5120000 2008-10-20 12:44 toto1
-rw-r--r-- 1 pme  pme  5076992 2008-10-20 12:44 toto2
-rw-r--r-- 1 pme  pme        0 2008-10-20 12:44 toto3


Rapport d'utilisation

srvglus238:~# repquota -uvg /dev/sdd1
*** Rapport pour les quotas user sur le périphérique /dev/sdd1
Période de sursis bloc : 7days ; période de sursis inode : 7days
                        Limites bloc               Limites fichier
Utilisateur     utilisé souple stricte sursis utilisé souple stricte sursis
----------------------------------------------------------------------
root      --    6181       0       0              5     0     0      
pme       +-   10000    9000   10000  6days       4  9000  10000      

Statistiques :
Total des blocs : 7
Blocs de données : 1
Entrées : 2
Moyenne d'utilisation : 2,000000