Установите ограничение размера для общего каталога SAMBA удаленно

Меня попросили создать общий каталог для коллеги на сервере, которым я управляю. Я создал для него аккаунт на этом сервере, установил пароль Samba с smbpasswd , создал каталог и установил его в файле smb.conf, который я копирую ниже:

[global] workgroup = OURWORKGROUP server string = Samba Server %v netbios name = server_i_run security = user map to guest = bad user name resolve order = bcast lmhosts host wins dns proxy = no [coworkerguy] path = /samba/coworkerguy valid users = coworkerguy guest ok = no writable = yes browsable = yes 

Теперь меня попросили ограничить это пространство 2Gb. Я искал в Интернете идеи, но я не могу найти что-нибудь недавнее, и создание дисковых квот, по-видимому, является одним из самых популярных решений. Я признаю, что я не настолько уверен в этом, и, кроме того, часто возникает вопрос о том, что мне нужно перезагружаться в режиме одного пользователя – если я что-то не понял. Это невозможно, поскольку я могу удаленно удалять только ssh на этот сервер. Есть ли методы, которые я мог бы использовать? Если нет, может ли кто-нибудь указать мне на идиот-доказательство?

Мое решение не самое лучшее, я знаю, но оно работает ;-). EDIT: Пожалуйста, прочтите мой другой ответ, этот ответ – злой хак!

Создайте файл 2Gb с dd, отформатируйте файл, например ext3, смонтируйте его, добавьте в fstab и используйте это как общий ресурс.

 $ dd if=/dev/zero of=filename bs=1024 count=2M $ sudo mkfs.ext4 filename $ cat /etc/fstab /path/to/filename /mount/point ext4 defaults,users 

Теперь вы указываете share на /mount/point (или где бы вы ни выбрали его), поэтому

path = /samba/coworkerguy становится path = /mount/point

В UNIX все является файлом.

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

В основном, вы редактируете файл /etc/fstab и добавляете usrquota в параметры монтирования раздела. Затем вы перемонтируете раздел:

 $ sudo mount -o remount /dev/sd<x><y> 

Где <x> – буква диска и <y> номер раздела на диске (если вы используете uuid , см. man mount для монтирования с uuid ).

Затем вы создаете файл квоты следующим образом:

 $ sudo quotacheck -avug 

Когда у вас есть файл квоты, пришло время добавить квоту для coworkerguy :

 $ sudo edquota coworkerguy 

Обратите внимание, что по умолчанию редактор является vi , установите переменную EDITOR в nano или gedit или любой редактор, который вам нравится, и повторите команду выше.

 $ export EDITOR=gedit 

Теперь вы можете добавить quotacheck в cron

 $ sudo echo 'quotacheck -avug' >/etc/cron.daily/quotacheck 

См. http://www.thegeekstuff.com/2010/07/disk-quota/ для точных шагов и вывода.

Также см. http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html

Я бы использовал блок-устройство, смонтированное в этом каталоге. LVM полезен здесь. Сделайте логический том 2G и установите его в /samba/coworkerguy . Это обойдется без каких-либо потребностей в квотах и ​​удовлетворит точные требования, помещая жесткие ограничения на размер.