The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Ограничение ресурсов для дочернего процесса"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Ограничение ресурсов для дочернего процесса"
Сообщение от pasha_golub emailИскать по авторуВ закладки on 06-Окт-03, 14:45  (MSK)
Требуется запустить дочерний процесс, который запускает в свою очередь программу присланную из инета.

Сделано:
1. Запускается в chroot
2. uid устанавливается в 5000..

Требуется:
1. Запретить программе создавать дочерние процессы
2. Ограничить время выполнения
3. Ограничить использование памяти и сист. ресурсов (диска, свопа,файлов и т.д.)
4. Если есть идеи по поводу ужесточения мер, плз.

Прошу отнестись к вопросу как к ламерскому, то есть рассусолить по полочкам, спасибо

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Ограничение ресурсов для дочернего процесса"
Сообщение от Leningrad Искать по авторуВ закладки on 06-Окт-03, 19:08  (MSK)
во FreeBSD смотри login.conf
посмотри утилиту truss
на чем хоть программы твои пишут?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Ограничение ресурсов для дочернего процесса"
Сообщение от Murr Искать по авторуВ закладки on 06-Окт-03, 19:53  (MSK)
man setrlimit.

Делаешь fork, потом с помощью setrlimit устанавливаешь ограничения, потом execve.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Ограничение ресурсов для дочернего процесса"
Сообщение от Leningrad Искать по авторуВ закладки on 06-Окт-03, 23:33  (MSK)
зачем? у него есть юзер, прописать ему соответсвующий класс
но ман почитать никогда не вредило

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Ограничение ресурсов для дочернего процесса"
Сообщение от Murr Искать по авторуВ закладки on 07-Окт-03, 15:10  (MSK)
>зачем? у него есть юзер, прописать ему соответсвующий класс
>но ман почитать никогда не вредило

Причем тут класс? Речь про конкретный процесс шла. Или если нужно поставить ограничения на один процесс - то будем ставить на все? :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Ограничение ресурсов для дочернего процесса"
Сообщение от Murr Искать по авторуВ закладки on 07-Окт-03, 15:19  (MSK)
>зачем? у него есть юзер, прописать ему соответсвующий класс
>но ман почитать никогда не вредило


К тому же AFAIK стандартный линуксячьи PAM модули не поддерживают никаких классов.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Ограничение ресурсов для дочернего процесса"
Сообщение от pasha_golub emailИскать по авторуВ закладки on 07-Окт-03, 09:36  (MSK)
Уточняю, setrlimit всем хорош, да жаль нет у него ограничения на кол-во создаваемых процессов, а регулировать это доступной памятью и временем процессора это все равно как гадание на кофейной гуще. Я хочу чтобы не смогли запустить fork-бомбу, поэтоум и требуется такое ограничение.

Текст программы на Паскале, компилируется компилятором FreePascal.org, возможно, но врядли, будут программы на С соттветственно под gcc.

Все это священнодействие происходит под Линуксом, так что Фря отпадает.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Ограничение ресурсов для дочернего процесса"
Сообщение от Murr Искать по авторуВ закладки on 07-Окт-03, 15:11  (MSK)
>Уточняю, setrlimit всем хорош, да жаль нет у него ограничения на кол-во создаваемых процессов,

А RLIMIT_NPROC для красоты что ли? :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Ограничение ресурсов для дочернего процесса"
Сообщение от pasha_golub emailИскать по авторуВ закладки on 07-Окт-03, 17:44  (MSK)
>>Уточняю, setrlimit всем хорош, да жаль нет у него ограничения на кол-во создаваемых процессов,
>
>А RLIMIT_NPROC для красоты что ли? :)


Че серьезно. Я не нашел. Сорри.

А он действует на все процессы в куче, то есть дети+дети детей + ...?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Ограничение ресурсов для дочернего процесса"
Сообщение от Leningrad Искать по авторуВ закладки on 07-Окт-03, 18:12  (MSK)
>Уточняю, setrlimit всем хорош, да жаль нет у него ограничения на кол-во
>создаваемых процессов, а регулировать это доступной памятью и временем процессора это
>все равно как гадание на кофейной гуще. Я хочу чтобы не
>смогли запустить fork-бомбу, поэтоум и требуется такое ограничение.
>
>Текст программы на Паскале, компилируется компилятором FreePascal.org, возможно, но врядли, будут программы
>на С соттветственно под gcc.
>
>Все это священнодействие происходит под Линуксом, так что Фря отпадает.

Да фиг с ней, с бомбой. Создай группу, в ней N юзеров. Выбираешь свободный uid, устанавливаешь лимиты, в том числе и по времени, форкнулся, запустил прогу (так N раз) - по завершении или таймауту прибиваешь все процессы с этим uid, rm -rf .../chroot/userX (квоты тоже можешь установить), создал, скопировал компилятор, либы и т.п. и по новой в том же духе. И можно сразу N штук обрабатывать.

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

/dev/null и /dev/zero больше в chrootе не нужно, /etc и пр. наверняка тоже

Ващета сначала идет задача, потом выбирают софт для ее решения, а уж потом, исходя из требований софта, выбирают платформу и ОС. Так что от Линукса плясать неразумно.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Ограничение ресурсов для дочернего процесса"
Сообщение от pasha_golub emailИскать по авторуВ закладки on 07-Окт-03, 18:27  (MSK)
Из-зи одной задачине нужно все переводить. Идею твою я понял спасибо, была такая, но уж больно ресурсоемкая, ИМХО
  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Ограничение ресурсов для дочернего процесса"
Сообщение от Leningrad Искать по авторуВ закладки on 07-Окт-03, 21:05  (MSK)
>Из-зи одной задачине нужно все переводить. Идею твою я понял спасибо, была
>такая, но уж больно ресурсоемкая, ИМХО

Ничего не надо переводить, в данном случае без разницы.
Можно предварительно парсить прогу на функции, если завершилась успешно да и ответ совпал, то на 5й раз обновлять папку.
Ресурсолегчее не придумать, добавь памяти и в ней расположи FS, с квотами.

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

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру