http://explosives.narod.ru/howto/mail_quotas.html

####################################################################
#   Прежде чем чит ть д льше это письмо, предв рительно прочит йте #
# м ну лы (manual pages) по quotaon (bash~# man quotaon).          #
####################################################################

    Квоты н  почтовый ящик Вы можете уст новить следующим обр зом (я
 р бот ю н  Solaris, но под другими опер ционными систем ми принцип
 т кой же, только есть ещё и групповые квоты (н пр. BSDI)):

 1. Если вы используете почтовый сервер т ким обр зом - прием почты
    sendmail и клиенты з бир ют почту POP3 или IMAP протоколом, то
    почтовые ящики пользов телей обычно н ходятся в /var/spool/mail.
    К к пр вило к т лок /var/spool/mail н ходится в отдельной ф йловой
    системе.
 2. Созд йте ф йл quotas в той ф йловой системе в которой собир етесь
    уст новить квоты. Н пример: touch /var/spool/mail/quotas
    Если /var/spool/mail это точк  монтиров ния В шей
    ф йловой системы - ф йл quotas созд йте в /var/spool/mail
 3. Присвойте этот ф йл пользов телю root, группе root ком ндой
    chown root:root /var/spool/mail/quotas
    З тем, д йте доступ rw только для root пользов теля ком ндой
    chmod 600 /var/spool/mail/quotas
    Для того, что бы включить квоты н  определенной ф йловой системе,
    необходимо выполнить следующие действия:
    bash~# quotaon -v /var/spool/mail
    З тем, в ф йле /etc/vfstab (это в Solaris, в других ОС возможно
    другой ф йл) в поле mntopts в место rw впишите rq.
 4. З тем з д йте квоту существующему пользов телю. Он будет к к бы
    ш блоном. Ком нд  edquota имя_пользов теля - позволяет
    ред ктиров ть квоты пользов телей. Если Вы хотите использов ть
     льтерн тивный текстовый ред ктор то выполните следующее (оболочк
    bash):
    bash~# EDITOR=имя_В шего_любимого_текстового_ред ктор
    bash~# export EDITOR
    З тем ком нд :
    bash~# edquota имя_пользов теля
    В ф йле откроется строк :
 
    fs /var/spool/mail blocks (soft = 0, hard = 0) inodes (soft = 0,
hard = 0)

    Где:
    fs /var/spool/mail - ф йлов я систем
    blocks (soft = 0, hard = 0) - квоты по блок м, где soft мягкий
                                  лимит (если пользов тель превыш ет
его, то он получ ет уведомление
                                  по почте, что он превысил квоту и ему
необходимо почистить inbox)
                                  и hard - при привышении квоты он не
                                  сможет з писыв ть в эту ф йловую
                                  систему, до тех пор, пок  не почистит
                                  inbox.
    inodes (soft = 0, hard = 0) - тоже с мой но только квоты н  кол-во
                                  inodes.

    Я обычно уст н влив ю квоты н  blocks и hard. В это случ е строк
    будет выглядеть следующим обр зом:

    fs /var/spool/mail blocks (soft = 0, hard = 100000) inodes (soft =
0, hard = 0)

    Это озн ч ет что пользов телю уст новлен  квот  в 100 Кб.
    Д лее, сохр няйте изменения в ф йле и квот  усн товлен !
 5. Теперь ком ндой:
    edquota -p имя_пользов теля_уже_с_квотой имя_нового_пользов теля
    Вы дублируете квоту н  нового пользов теля.

    Но если в В шей системе много пользов телей, то этот скрипт, может
    облегчить В шу жизнь :)

    Скрипт №1 (если н  В шей системе есть Perl):
 
--------------------------------------------------------------------------------------------
#!/usr/bin/perl # Этот путь может быть другим. Проверте его.

open (FL, ")
{
           ($name, $pwd, $id, $gid, $rname, $home, $shell) =
split(/:/);
           system("/usr/sbin/edquota -p имя_пользов летя_уже_с_квотой
$name");
           print "Quota has applyed to user $name\n";
}
 
---------------------------------------------------------------------------------------------
 Этот скрипт уст новить квоты всем пользов телям которые
 з регистриров ны в /etc/passwd

 И скрипт №2 (shell script)
 
-----------------------------------------------------------------------------------------------
 #!/usr/bin/sh  # Этот путь может быть другим. Проверте его.

 users=`awk '{ print FS=":", $1}' /etc/passwd | awk ' {print $2}'`

 for user in $users
 do
     /usr/bin/edquota -p имя_пользов летя_уже_с_квотой $user
 done
 
-----------------------------------------------------------------------------------------------

 Т ким же обр зом можно уст новить квоты н  home директории
 пользов телей, если пользов тели у В с юниксовые. :)
 Ну вот к жется всё.

 Если будут вопросы то без проблем кид йте н  мой E-mail.

Системный Администр тор                   | Виктор Тивилёв
Н цион льного Б нк  Кыргызской Республики | vtivilev@nbkr.kg
                                          | тел.: +996 312 669116