Suppose a person X connects to a Unix OS with ssh as a regular user; X writes a small program P which executes itself 2 times without waiting and exits; then X executes it. Clearly, after some time, there are thousands of copies of program P executing in parallel, and the OS begins to get very slow; so X wants to terminate this chain: X runs "ps" to get the PIDs to manually kill all of them, but being ps another process I guess the scheduler puts it in the huge queue of processes P and ps never gets running (or maybe it does after a very long time); so X cannot get any information about processes P so X can't terminate them; after a while, X's ssh session gets killed too so X is kicked out; if X tries to reconnect, X gets connection refused; so X calls the admin, and even he can't access with ssh using root account; so the machine is virtually dead and it must be rebooted physically.
Since this story happened for real, my questions are:
1) how can an OS let an unprivileged user do this without reserving any memory space for root processes? X actually managed to kill root services!
2) what would you have done if you had been user X to kill the chain in time?
Recent Questions...
ما را در سایت Recent Questions دنبال میکنید
برچسب:
نویسنده: استخدام کار
بازدید: 202
تاريخ: پنجشنبه
6 خرداد
1395 ساعت: 2:10