Quotas avec Pure-Ftpd

Bonjour,

Voilà, depuis plusieurs heures je cherche comment mettre des quotas à des "virtual users" sur le serveur pure-ftpd.

Puis il y a une chose que je ne comprend pas très bien.

Quand je fais un $pure-pw show <user> j'ai:

Login              : <user>
Password           : $1$B71.....
UID                : 500 (ftpuser)
GID                : 501 (ftpgroup)
Directory          : /media/disque1/<user>/./
Full name          : 
Download bandwidth : 0 Kb (unlimited)
Upload   bandwidth : 0 Kb (unlimited)
Max files          : 0 (unlimited)
Max size           : 0 Mb (unlimited)
Ratio              : 0:0 (unlimited:unlimited)
Allowed local  IPs : 
Denied  local  IPs : 
Allowed client IPs : 
Denied  client IPs : 
Time restrictions  : 0000-0000 (unlimited)
Max sim sessions   : 0 (unlimited)


Ce qui me dérange c'est le Upload bandwidth : 0 Kb (unlimited).

Pourquoi je suis à 0kb uploadé alors que j'ai uploader 1Go.

Sinon pour les quotas justement j'aimerais faire en sorte qu'il ne puisse pas uploader plus de 10go

Merci d'avance.

cdt,
jonathan
Configuration: Linux
Firefox 3.0.11

17 réponses

Résumé de la discussion

La discussion porte sur la mise en place de quotas pour des utilisateurs virtuels avec Pure-FTPd et sur l’interprétation de l’option Upload bandwidth affichant 0 Kb (unlimited). Plusieurs répondants expliquent que 0 Kb signifie unlimited et proposent d’appliquer des quotas réels, soit via des quotas Linux per-user, soit via les quotas virtuels décrits dans le README Virtual-Users. D'autres évoquent l'usage des options -N et -n (pour NAT, total et taille par fichier) et recommandent de lire le README Virtual-Users qui clarifie les mécanismes et les limites. En complément, des liens externes et des conseils sur la gestion des quotas et sur la manière de tester les limites sont mentionnés pour éviter les configurations incomplètes.

Bobot (l’IA à votre service)
  1. Contributeur
    Salut,

    Tu es à 0 Kb (unlimited) parce que... bah c'est écrit à coté, tu es en unlimited, donc tu uploaderas sans limite... d'ailleurs tout semble être en unlimited dans ta config, donc tu mets des valeurs à la place de 0 et ça devrait le faire.

    A+
    0
    1. justement, comment mettre ces valeurs?
      0
      1. j'ai trouver comment mettre des quotas j'ai utilisé une base sql et installé pure-ftpd-mysql

        Maintenant le problème des quotas c'est que sa défini une taille maximum mais pour uniquement les fichiers.

        exemple:

        si je défini un quotas de 10Mo pour un user il ne pourra que uploader des fichiers de taille 10Mo maximum par contre il pourra en uploader autant qu'il veut...

        Ce que je voudrais c'est faire un quotas sur le compte entier.

        exemple:

        je donne un quotas de 10Mo pour l'user jonathan et l'addition de la taille de tous ses fichiers ne pourra pas dépasser les 10Mo

        Est-ce Possible ?

        cdt,
        0
        1. Dans ce que tu m'as donnée il ne traite pas les virtuals host mysql.
          0
          1. j'ai tester la doc que tu m'as donné sans utilisé sql

            j'ai donc:

            Login              : jonathan
            Password           : $1$D
            UID                : 500 (ftpuser)
            GID                : 501 (ftpgroup)
            Directory          : /media/nas4/jonathan/./
            Full name          : 
            Download bandwidth : 0 Kb (unlimited)
            Upload   bandwidth : 0 Kb (unlimited)
            Max files          : 0 (unlimited)
            Max size           : 10 Mb (enabled)
            Ratio              : 0:0 (unlimited:unlimited)
            Allowed local  IPs : 
            Denied  local  IPs : 
            Allowed client IPs : 
            Denied  client IPs : 
            Time restrictions  : 0000-0000 (unlimited)
            Max sim sessions   : 0 (unlimited)
            


            donc ici Max Size est de 10Mo

            Le problème est toujours le même je peux uploader que des fichiers de 10Mo mais plusieur:

            exemple:

            ftp> send 
            (local-file) /home/submit/a
            (remote-file) b
            local: /home/submit/a.avi remote: b
            200 PORT command successful
            150 Connecting to port 43615
            netout: Connection reset by peer
            226-0 Kbytes used (0%) - authorized: 10240 Kb
            226-File successfully transferred
            226 1.795 seconds (measured here), 5.57 Mbytes per second
            ftp> ls
            200 PORT command successful
            150 Connecting to port 58733
            -rw-r--r--    1 500      0        10486416 Jul 23 12:20 a
            -rw-r--r--    1 500      0        10486416 Jul 23 12:20 b
            226-Options: -l 
            226 2 matches total
            ftp> 
            
            0
            1. Modérateur
              Salut,

              Et en mettant une limite sur le nombre de fichiers (-n 1000), comme dans l'exemple, ça ne le fait pas ?
              0
              1. Oui mais si c'est 1000 fichiers de 1ko chaque cela me fais donc une taille total de 1Mo et si maintenant c'est 1000 fichier de 10Mo cela me fais 10Go,

                Moi je veux vraiment limiter le compte.
                0
                1. Modérateur
                  Si j'ai bien compris le "-N 10" c'est le total, donc avec un "-n 1000" ça laisse de la marge et dès que le total de 10Mo sera atteint (que ce soit avec 1, 2, 100 ou 1000 fichiers), basta... enfin c'est ce que j'ai cru comprendre ;-))

                  A tester ;-)
                  0
              2. je comprend pas très bien ce que tu veux dire...

                il y a pas une option qui limite la taille d'un compte entier ?, au lieu de faire des bidouilles qui ne sont pas stable.
                Surtout que pour ma part ceci me sert pour mes clients et je ne peux pas me permettre de faire d'erreur, ou des bidouilles instables. =)

                cdt,
                0
              3. Contributeur
                Dans ce cas là, mets un quota linux sur les dossiers des utilisateurs ?!
                0
                1. Modérateur
                  Grillé que je suis ;-))
                  0
                2. Contributeur
                  @jipicyArggg, tu as grillé ma modification message ! ^^
                  0
                3. Modérateur
                  @foobar47Fallait pas me taper ma sublime citation Hadopesque ;-))

                  PS. Non je n'ai pas les chevilles qui enflent ;-)
                  0
                4. Contributeur
                  @jipicySi j'avais pu poster ma réponse ou je parle de toi comme un demi dieu du monde Unix, tes chevilles auraient explosées...

                  Quand à ta citation Hadopi, je l'ai trouvé tellement géniale que je m'en suis insipré, mais rendons à César ce qui appartient à César...
                  0
                5. Modérateur
                  @foobar47Non, non en veux pas de citation, ça va pas non, tous les hackeurs vont me tomber dessus ;-))
                  0
              4. Contributeur
                Sinon, l’option -N 500 permet quand à elle de fixer le quota d’espace disque de cet utilisateur a 500 MB.

                Pour supprimer le quota de l’utilisateur virtuel toto: pure-pw usermod toto -N ‘ ‘

                Et -n 1000:10
                1000 fichiers max de 10Mb max...

                Tout est là...
                0
                1. Bas non justement le -N 10 permet simplement de limiter le taille mais par fichier et non pas en espace total.
                  C'est ça mon problème.

                  Sinon je vais regarde comme vous dites du coté des quota unix et je tien au courant.
                  0
                  1. Heu une question comment mettre des quota unix alors que c'est des users virtuels ?

                    tous les users son associé à l'uid ftpusers et l'gid ftpgroup cependant si je fais un quota sur ftpuser ça va prendre en compte tous les users virtuel et non pas individuellement.

                    cdt,
                    0
                    1. Contributeur
                      Mais c'est fou ça !

                      Combine les deux options -n et -N

                      Et -n 1000:10
                      1000 fichiers max de 10Mb max...

                      -N 500 = 500Mb au total !
                      0
                      1. J'ai suivi tes conseil:

                        Login              : jonathan
                        Password           : $1$KTHHuGH0$PrwfRMerUhwrZi9CWYRPh0
                        UID                : 500 (ftpuser)
                        GID                : 501 (ftpgroup)
                        Directory          : /media/disque1/jonathan/./
                        Full name          : 
                        Download bandwidth : 0 Kb (unlimited)
                        Upload   bandwidth : 0 Kb (unlimited)
                        Max files          : 10 (enabled)
                        Max size           : 100 Mb (enabled)
                        Ratio              : 0:0 (unlimited:unlimited)
                        Allowed local  IPs : 
                        Denied  local  IPs : 
                        Allowed client IPs : 
                        Denied  client IPs : 
                        Time restrictions  : 0000-0000 (unlimited)
                        Max sim sessions   : 0 (unlimited)
                        


                        avec -n 10:10 -N 100
                        mais cela ne limite en rien mon espace disque de 100Mo

                        j'ai uplaodé 1 708 éléments, total 119,6 Mio
                        0
                        1. Modérateur
                          Jette un œil au README dans la section "VIRTUAL QUOTAS", tout y est expliqué.

                          Je crois que le "-N" n'est plus d'actualité :
                          '-N': NAT mode. Force ACTIVE mode. If your FTP server is behind a NAT box
                          that doesn't support applicative FTP proxying, or if you use port
                          redirection without a transparent FTP proxy, use this.
                          0
                          1. Contributeur
                            Arg...............

                            Bon, en reprenant la doc :

                            Virtual quotas are implemented in Pure-FTPd as simple files called
                            ".ftpquota", located in the home directory of chrooted users. This file only
                            contains two numbers: the current number of files for this user and the
                            total size of the directory (+ its subdirectories), in bytes. When a new
                            file is uploaded, these numbers grow. When a file is deleted, these numbers
                            get smaller. Simple. Of course, when virtual quotas are enabled for one
                            user, that user must be 1) chrooted, 2) not allowed to write quota files, 3)
                            not allowed to forbid access to some directories to fool the counter.

                            Quotas can be enabled for all users for the -n (--quotas) option. This
                            option is followed by the max number of files and the max size (in Megabytes)
                            . Every user will have the same quota. Exception: members of the trusted
                            group, if -a is enabled.

                            You can also have different quotas for every user if you use PureDB or SQL
                            databases. See the "README.Virtual-Users" file for more info about PureDB
                            databases.

                            So, if you want 1000 files max and 10 Mb max for all your customers, run
                            the server like this:

                            /usr/local/sbin/pure-ftpd -n 1000:10
                            0