Назад | Перейти на главную страницу

Ограничить общий размер каталога в Linux

У меня есть сервисный демон, который создает много временных файлов. Недавно мой сервер умер, потому что злоумышленник сумел залить / tmp и заполнить диск. Я предпринял некоторые меры для активной очистки временного каталога, но дополнительно я хотел бы ограничить максимальный размер этого временного каталога приложений.

Есть ли способ создать каталог, скажем, /apptmp это никогда не будет больше, чем, например, 10G? Я знаю, что могу установить ограничения на диск для каждого пользователя, но я просто хочу ограничить этот tmpdir; приложение всегда должно иметь возможность писать в другом месте.

Я использую Ubuntu Linux 12.04.

edit: Все это в конечном итоге должно быть заключено в устанавливаемый пакет Ubuntu. Поэтому я не думаю, что хочу полагаться на изменение разделов, если только я не смогу как-то смоделировать это.

Вы можете дать /tmp это собственный раздел. Тогда вы будете уверены, что она никогда не превысит эту сумму. Я предлагаю использовать LVM, чтобы вы могли увеличивать и уменьшать размер раздела, если вы когда-нибудь почувствуете в этом необходимость.

Ответ Лукаса - лучший.

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

$ dd if=/dev/zero of=/tmp/tmpdisk bs=1073741824 count=10
$ mke2fs /tmp/tmpdisk
$ sudo mount -o loop /tmp/tmpdisk /apptmp

Это создаст файл размером 10 ГБ в / tmp, создаст файловую систему внутри этого файла, а затем смонтирует его как / apptmp.

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