Samba - настраиваем дисковые квоты.

  • Автор:

samba-quota-000.jpg

Не так давно мы рассказывали о возможностях файловых служб Windows Server. Безусловно, наиболее востребованы дисковые квоты, которые позволяют гибко контролировать использование дискового пространства и не допускать его нецелевого использования. Сегодня мы поговорим о настройке квот для файловых серверов на базе Ubuntu Server и Samba.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Дисковые квоты в Linux системах реализуются при помощи специальной утилиты quota, которая работает на уровне раздела и позволяет устанавливать квоты пользователям и группам. Возможности установить квоту для отдельного общего ресурса нет, также существуют ограничения по используемым файловым системам, например не поддерживается XFS, которая имеет свои инструменты для квотирования. Поэтому если вы настраивали файловый сервер по нашей инструкции, то вам потребуется изменить файловую систему на разделе с данными или обратиться к документации по xfs_quota.

В нашем случае использовался файловый сервер, настроенный по вышеуказанной инструкции, однако с использованием на разделе /data файловой системы ext4. Все действия следует выполнять с правами суперпользователя или с помощью sudo.

Следует помнить, что при гостевой модели доступа квоты не применяются, поэтому нужно изменить настройки samba, чтобы пользователи получали доступ к общим ресурсам только после авторизации на сервере. Для этого в глобальной секции изменим параметр:

[global]
security = USER

Теперь создадим общий ресурс:

[Users]
path = /data/USERS
read only = No

Подразумевается, что папка USERS уже создана и на нее выставлены права 777. Перейдем к списку пользователей. Сначала создадим группу, в нашем случае smbuser:

groupadd smbuser

Создадим пользователей и сразу установим им основной только что созданную группу:

useradd -g smbuser sidorov

Установим им пароли к системе и samba, учтите, что пароли должны совпадать, иначе вы не сможете получить доступ к SMB ресурсам:

passwd sidorov
smbpasswd -a sidorov

Перезапустим sambа и проверим, что все работает:

service smbd restart

Чтобы убедиться, что раздел смонтирован с поддержкой квот, выполним команду

mount

Если все сделано правильно, вы увидите примерно следующее:

samba-quota-001.jpg

Теперь установим пакет quota:

apt-get install quota

Чтобы использовать квоты, нужно смонтировать соответствующий раздел с их применением. Откроем /etc/fstab найдем строку отвечающую за монтирование раздела /data и добавим опции для включения квот, строка будет иметь примерно следующий вид:

UUID=bdf379fc-627d-49e6-9153-a2cb571a6ee1 /data ext4    defaults,usrquota,grpquota 0  2

UUID - уникальный идентификатор раздела и, в вашем случае, будет иметь иное значение. За включение квот отвечают опции usrquota и grpquota, их назначение понятно из названий, также вы можете применить к разделу только один вид квот, указав только одну опцию. Чтобы изменения вступили в силу перезагрузим сервер.

В корне раздела, к которому применяем квоты, создадим два файла для хранения записей квот и установим необходимые права доступа к ним:

touch /data/aquota.user
touch /data/aquota.group
chmod 600 /data/aquota.user
chmod 600 /data/aquota.group

Теперь перечитаем значения квот командой:

quotacheck -avug -f

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

Для установки квот используется команда edquota, размер квоты можно выставить в количестве блоков или количестве файлов, чтобы рассчитать количество блоков нужно необходимый размер квоты в МБ умножить на 1024. Квота также может быть двух видов: мягкая и жесткая. Мягкая квота позволяет использовать пространство сверх квоты в течении некоторого времени (по умолчанию 7 дней), после чего мягкая квота становится жесткой, жесткая квота не может быть превышена ни при каких обстоятельствах.

Установим группе smbuser жесткую квоту в размере 200 МБ (204800 блоков):

edquota -g smbuser

Откроется редактор nano с файлом следующего вида:

samba-quota-002.jpg

Вносим в него необходимые значения и сохраняем, квоты вступают в действие сразу. Для установки квот пользователям используется следующий синтаксис:

edquota -u sidorov

Для изменения времени, по истечении которого мягкая квота становится жесткой, используйте:

edquota -t

Самое время проверить как это работает:

samba-quota-003.jpg

Просмотреть состояние дисковых квот можно командой:

repquota -ug /data

Ключи u и g указывают, что необходимо вывести отчет как по пользователям, так и по группам, в итоге вы должны увидеть следующее:

samba-quota-004.jpg

Все это хорошо, но если пользователей (групп) много, то ручная установка квот для них может стать трудоемкой задачей. Более оптимально будет настроить квоты для одного пользователя, а потом скопировать эти настройки остальным, для этого создадим прототип:

edquota -u sidorov

Теперь мы можем применить настройки прототипа (пользователь sidorov) к другому пользователю командой:

edquota -p sidorov vasilev

Данная возможность удобна еще и тем, что вам не нужно вспоминать, какие именно квоты установлены для того или иного пользователя или группы, создав нового пользователя вы просто и быстро можете применить к нему квоты "как у Сидорова".

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.


Loading Comments