Перевод сборника команд Unix ToolBox. Часть 17 Дисковые квоты

525

Когда я начал знакомится с Linux меня несколько удивило построение файловой системы в Unix-подобных системах вообще, и в Linux в частности. Но почитав Костромина, маны, купив принтер и наконец поставив Linux на реальное железо, я понял всю логичность и правильность построения файловой системы. Например, есть такое понятие как дисковые квоты. Штука весьма интересная и полезная, особенно если речь идет о сервере или компьютере с общим доступом и несколькими пользователями. Поэтому предлагаю вам очередную главу перевода ?сборника команд Unix ToolBox, посвященную именно этому вопросу.

Дисковые квоты

Дисковые квоты позволяют ограничить дисковое пространство или количество файлов использкемых пользователем (или членом группы). Квоты распределяются на уровне файловой системы и поддерживаются ядром.

Дисковые квоты в Linux

Пакет quota tools, как правило нуждается в установке, он содержит утилиты командной строки.
Сначала нужно активировать дисковые квоты в файле fstab и перемонтировать раздел. Если раздел заблокирован открытыми файлами, нужно перезагрузить систему и добавить опцию монтирования usrquota в файл fstab.

/dev/sda2 /home reiserfs rw,acl,user_xattr,usrquota 1 1
# mount -o remount /home
# mount # Проверьте, активна-ли usrquota, иначе перезагрузитесь.

Инициализация файла quota.user с помощью quotacheck.

# quotacheck -vum /home
# chmod 644 /home/aquota.user # Позволить пользователю просматривать свои квоты.

Активировать квоты с помощью скрипта (например: /etc/init.d/quotad в SuSE) или quotaon:

quotaon -vu /home

Проверить активацию:

quota -v
Дисковые квоты FreeBSD

Инстркменты дисковых квот во FreeBSD являются частью базовой системы, однако в ядро должно быть включено option quota. Если это не так, добавте необходимую опцию и перекомпилируйте ядро.

options QUOTA

Как и в Linux, нужно добавить в fstab соответствующую опцию userquota:

/dev/ad0s1d /home ufs rw,noatime,userquota 2 2
# mount /home # Перемонтировать раздел

Включение квот в файле в /etc/rc.conf.

# grep quotas /etc/rc.conf
enable_quotas=»YES» # Активировать дисковые квоты при запуске системы (или NO).
check_quotas=»YES» # Проверять квоты при старте (или NO).
# /etc/rc.d/quota start
Ограничения квот

По-умолчанию, дисковые квоты не накладывают никаких ограничений (установлены в 0). Установить необходимые лимиты для пользовательских квот можно с помощью программы edquota. Так-же лимиты можно дублировать на других пользователей. Размер блока по-умочанию, 1 kб. Время действия можно установить с помощью edquota -t. Например:

# edquota -u colin
Linux
Disk quotas for user colin (uid 1007):
Filesystem blocks soft hard inodes soft hard
/dev/sda8 108 1000 2000 1 0 0
FreeBSD
Quotas for user colin:
/home: kbytes in use: 504184, limits (soft = 700000, hard = 800000)
inodes in use: 1792, limits (soft = 0, hard = 0)
Изменение дисковых квот для нескольких пользователей

Команда edquota -p используется для дублирования квот на других пользователей. Например:

# edquota -p refuser `awk -F: ‘$3 > 499 {print $1}’ /etc/passwd`
# edquota -p refuser user1 user2 # Дублируем на 2 пользователей
Проверка квот

Пользователи могут проверить свои квоты командой quota (файл quota.user должен быть доступен для чтения). Пользователь root может проверять любые квоты.

# quota -u colin # Проверить квоты пользователя.
# repquota /home # Полный отчет по разделу для всех пользователей.