Strona 1 z 1

Ograniczenie pamięci dla wybranego programu

: 24 stycznia 2010, 13:48
autor: mnbvcx
Mam program X. Chcę dostosować Debiana tak, by:
a) mógł modyfikować tylko pliki w swoim folderze,
b) miał do dyspozycji Y MB pamięci operacyjnej (gdy będzie chciał więcej, to kill),
c) nie mógł otwierać innych programów.

Punkt a) zrobiłem poprzez utworzenie użytkownika tester i chown+chmod.
Próbuję teraz dostosować system do punktów b) oraz c). Dokopałem się do polecenia ulimit, jednakże ustawia on limity dla całego systemu - zaś chcę, aby został ustawiony limit dla jednego konkretnego programu (np. program X ma ustawiony limit 16 MB, zaś w tle może lecieć serwer zajmujący 30 MB RAM-u). W przypadku c) też pasuje ulimit, jednakże jest to liczba procesów ustawiona na sztywno (gdy np. serwer może spróbować uruchomić jakiś proces, granica zostanie również przekroczona).

W jaki sposób można dostosować mojego Debiana do tych wymogów? Dziękuję z góry za wszystkie wskazówki.

: 24 stycznia 2010, 18:36
autor: lessmian2
A /etc/security/limits.conf ?

: 24 stycznia 2010, 20:27
autor: mnbvcx
Plik limits.conf jest dobrym pomysłem i od biedy mógłbym stworzyć coś takiego (druga niezakomentowana linijka to chęć ulepszenia Debiana pod punktem a).

Kod: Zaznacz cały

#uzytkownik  typ   nazwa    wartosc
tester       hard  memlock  32768
tester       -     chroot   /home/tester
tester       hard  nproc    [jakaś_tam_liczba]
Jednak mam kilka problemów:
1) po ustawieniu chroot nie mogę się w ogóle zalogować na tty#, zaś su się tym wpisem zupełnie nie przejmuje.
2) nie wiem, co ustawić na nproc - jak będzie za mało, nie uruchomię programu, jak będzie za dużo - pozwolę programowi uruchamiać inne. Chciałbym móc dobrać tę liczbę.

Co można zaradzić na problemy? Jestem otwarty na sugestie.