У меня есть сервисный демон, который создает много временных файлов. Недавно мой сервер умер, потому что злоумышленник сумел залить / 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.
Но, как уже отмечалось, вы должны делать это только в том случае, если вы загнали себя в угол со схемой разбиения диска.