• Быстрый переход
  • Рубрики
  • Свежие записи
  • Метки
  • Архивы
  • Реклама 1
  • Реклама 2
  • Рейтинг@Mail.ru

    Установка дисковых квот Linux


    Первым делом в ядре должна быть включена поддержка квот. Если у вас ядро серии 2.6, то по умолчанию квоты включены, если - 2.4 - пересоберите ядро (посмотреть версию ядра можно командой uname -r). Для того, чтобы проделать все нижеописанное, Вам понадобится утилита quota, установленная на вашем компьютере. Бинарные пакеты существуют для всех распространенных дистрибутивов.
    В Debian-производных дистрибутивах установка с помощью утилиты apt-get выглядит так:

    $ sudo apt-get install quota

    Все. Никаких дополнительных пакетов не требуется.Теперь, как я уже упоминал выше, допустим, у нас есть папка /home, смонтированная на отдельном разделе жесткого диска, скажем /dev/sda8, размером 20Гб, и два пользователя - ddenia и jeka с домашними директориями /home/ddenia/ и /home/jeka. И что я хочу сделать? Правильно, ограничим пользователя nadiia всего 50 мегабайтами. Приступим.

    1. Загрузитесь в однопользовательский режим. Поскольку директория /home будет перемонтирована, то мы должны застраховаться от того, что другие пользователи могут потерять свои данные.
    #init 1

    (этого можно и не делать, если вы уверены, что за компьютером больше никто кроме вас не работает)

    2. Отредактируйте файл /etc/fstab/:

    $sudo vi /etc/fstab/

    добавив usrqouta к опциям раздела /home.
    Вот так это выглядит у меня:

    /dev/sda8 /home ext3 defaults,usrquota 0 2

    3. Перемонтируйте раздел /home:

    $ sudo mount -o remount /home

    4. Создайте файлы aquota.user и/или aquota.group. Файлы должны быть созданы в самой верхней директории раздела. В нашем случае это /home. Поскольку я хочу ограничить квотами лишь пользователей, файл aquota.group я создавать не буду.

    $ sudo touch /home/aquota.user
    $ sudo chmod 600 /home/aquota.user

    5. Разрешаем linux читать файл aquota.user. Это делается с помощью команды quotackeck. Будьте готовы к тому, что будет выведена ошибка, как показано ниже. Это связано с тем, что файл был создан вручную, а не командами qouta. Также будет сказано об отсутствии файла для групп. Ничего страшного в этом нет

    $ sudo quotacheck -vagum
    quotacheck: WARNING - Quotafile /home/aquota.user was probably truncated. Can't save quota settings...
    quotacheck: Scanning /dev/sda8 [/home] quotacheck: Old group file not found. Usage will not be substracted.
    done
    quotacheck: Checked 5265 directories and 74403 files

    6. Задайте квоты для пользователей, используя команду edquota

    $sudo edquota -u jeka

    Эта команда запустит редактор, установленный по умолчанию (переменная EDITOR) (в моем случае это редактор mc -mcedit):

    Disk quotas for user jeka (uid 1001):
    Filesystem blocks soft hard inodes soft hard
    /dev/sda8 16 0 0 5 0 0

    (Если используемый по умолчанию редактор вам не нравится, всегда можно его изменить, запустив в консоли export EDITOR=vi. Вместо vi запишите удобный для вас редактор)

    В приведенном выше файле:

    Blocks : Место, используемое пользователем в блоках длиной 1kB.

    inodes : Число используемых пользователем файлов.

    Soft Limit : Максимальное количество блоков/файлов, которое пользователь может иметь на данном разделе. Если используется период отсрочки (grace period), то вместо жесткого ограничения, пользователь нарушивший данные требования, получит лишь сообщение об этом. Значение 0 отключает данную опцию.

    Hard Limit : Максимальное количество блоков/файлов, которое пользователь может иметь на данном разделе даже с установленным периодом отсрочки. Это жесткое ограничение, которое пользователь не может превысить.

    Ограничим пользователя всего 50-ю мегабайтами (приблизительно).

    Disk quotas for user jeka (uid 1001):
    Filesystem blocks soft hard inodes soft hard
    /dev/sda8 16 50000 0 5 0 0

    7. Теперь можно выйти из однопользовательского режима (если вы работали в нем), набрав

    #init 5

    Все. Теперь пользователь jeka не может превысить 50Mb.

    Другие команды quota.

    Изменяем период отсрочки:

    $sudo edquota -t

    Эта команда установит период отсрочки для всех пользователей. Период отсрочки - это период, во время которого опция soft period будет лишь предупреждать, но не ограничивать. Могут быть использованы секунды, минуты, часы, дни, недели и месяцы (нужно вписать на английском языке seconds, minutes, hours, days, weeks и months ) Так выглядит запуск этой команды у меня:

    Grace period before enforcing soft limits for users:
    Time units may be: days, hours, minutes, or seconds
    Filesystem Block grace period Inode grace period
    /dev/sda8 7days 7days

    Редактирование квот для групп:

    $sudo edquota -g

    Регулярная проверка квот:

    Полезно регулярно выполнять quotacheck. Это можно реализовать, добавив задание в файл crontab

    0 3 * * 0 /sbin/quotacheck -vagu
    (частоту выполнения задания можно выставить, используя синтаксис cron)

    Отчет об квотах:

    Команда repquota показывает суммарный отчет по квотам на файловой системе. У меня отчет выглядит следующим образом:

    $ sudo repquota /home
    *** Report for user quotas on device /dev/sda8
    Block grace time: 7days; Inode grace time: 7days
    Block limits File limits
    User used soft hard grace used soft hard grace

    ----------------------------------------------------------------------
    root -- 131312 0 0 15 0 0
    ddenia-- 18774192 0 0 79512 0 0
    sshd -- 14512 0 0 137 0 0
    jeka-- 16 50000 0 5 0 0

    Автор: admin, 23 марта 2010
    Рубрики: OS Linux, Новости
    Метки: , , , ,
    2 комментария к сообщению: “Установка дисковых квот Linux”
    1. Евгений:

      Venom:/home/xyz# quotacheck -vagum
      quotacheck: Cannot find filesystem to check or filesystem not mounted with quota option.
      а ето что значит?

    2. Евгений:

      Самое интересное было когда я решил перезагрузица, с уже изменёным fstab, и при запуске вылезло такоеже сообщение при котором система не продолжала стартовать…
      спустя пол часа помогло токо нажатие alt+SysRq+E вычитаемое в книжке для чайников =)
      Я ещё и есть чайник такчто помогите плиз )

    Написать комментарий

    Последние статьи