Змінюй хід війни! Допомагай ЗСУ!

отказ от fork()

🟡 00:47 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
Статус: Offline
Реєстрація: 18.03.2009
Повідом.: 1410
  • 🟡 00:47 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #1
отказ от fork()

как процесс в *nix может сделать так, чтобы он не смог вызвать fork()?
 
  • 🟡 00:47 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #2
Написать перехватчик системного вызова.
 
  • 🟡 00:47 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #3
Это не наш метод. Более гуманного способа нету?
 
  • 🟡 00:47 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #4
не знаю как ты собрался запрещать системный вызов, не влезая в ядро.
 
  • 🟡 00:47 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #5
В никсах есть средства для дропанья привилегий (например man capabilities, man setrlimit)
Я ж это не глобально хочу сделать, а персонально для процесса
 
  • 🟡 00:47 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #6
Хочешь сказать, что на системный вызов (генерацию прерывания) можно поставить запрет?
 
Останнє редагування:
  • 🟡 00:47 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #7
Хочешь сказать, что на системный вызов (генерацию прерывания) можно поставить запрет?

Требовалось сделать так чтобы процесс не мог сделать fork(). Вариант когда fork() возвращает EAGAIN естественно тоже годится.

генерация прерывания млин...

я просто не допер сразу что RLIMIT_NPROC действует только на fork, но не на setuid. тоесть если сразу после setuid делать setrlimit(RLIMIT_NPROC, 1); тогда ОС не даст ему форкнуться. никогда. мухахаха

спасибо за внимание
 
  • 🟡 00:47 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #8
ну разве, что через такую хитрозакрученную жопу.

ERRORS
EAGAIN The uid does not match the current uid and uid brings process over its RLIMIT_NPROC resource limit.

eyeland, для запущенного процесса один хер придется в ядро лезть.
 
Останнє редагування:
  • 🟡 00:47 Відбій тривоги в Харківський район.Зверніть увагу, тривога ще триває у:- Харківський район#Харківський_район
  • #9
хитрозакрученная жопа это лезть в ядро

RLIMIT_NPROC
The maximum number of processes (or, more precisely on Linux, threads) that can be created for the real user ID of the calling process. Upon encountering this limit, fork(2) fails with the error EAGAIN.

во фряшном мане написано более скупо. и да, на фре тоже должно работать.

для запущенного и не нужно, нужно для текущего. И да, он сам будет добровольно такое делать
 
Назад
Зверху Знизу