|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valentin Nechayev 2:5020/400 22 Apr 2003 22:36:28 To : Sergey Zaikov Subject : Re: снести пользователя по времени -------------------------------------------------------------------------------- >>> Sergey Zaikov wrote: VN>> сделать fork() и потомок перестанет быть таковым. По этому принципу VN>> можно сделать свои аналоги cron, at, batch и прочих запускателей не VN>> под терминалом. В-третьих, достаточно запустить nohup чего-то и VN>> отвалиться, чтобы получить процесс якобы с терминалом, но на самом VN>> деле оторванным. SZ> Снести все процессы пользователя особого труда не составляет: SZ> kill -TERM `ps -ax -U юзер|grep -v PID` Race condition между вызовом ps и вызовом kill. Убей-ка таким образом вот такую вот программу: main() { for(;;) { if( fork() > 0 ) _exit(0); } } Предупреждаю - ловить будешь долго. И нудно. ;)))) Все процессы юзера можно убить разве что сделав setuid() в него и затем вызвав kill(-1,sig). И то - неизвестно что будет в случае настоящего SMP - пока kill() будет итерировать список процессов, другой процесс, из уже прочёсанных, сделает fork() на другом процессоре. Четвёртой фряхи это не касается, а вот пятая уже может показать фокусы. SZ> Интересно отделить задачи, запущенные по крону. В общем случае метода нет. -netch- --- ifmail v.2.15dev5 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/7368ae6f3b80.html, оценка из 5, голосов 10
|