Mal*_*ala 2 linux fork process denial-of-service
有没有办法阻止用户使用以下代码锁定Linux机器:
#import <stdio.h>
int main (int argc, char** argv)
{
while (1)
fork();
}
Run Code Online (Sandbox Code Playgroud)
有问题的计算机是在计算机实验室中进行的,所以我不能完全禁止编译......但有没有办法确保这些进程只占用系统资源的某一部分?这个问题的重要性因任何用户都可以进入任何系统而变得更加复杂,所以真正唯一的原因还没有成为问题,大多数用户或多或少都不熟悉C或其他低级语言.
不过,我还是想把这个扼杀在萌芽状态......
pax*_*blo 11
您可以限制允许每个用户创建的并发进程总数.我认为它已经存在/etc/security/limits.conf并且该NPROC领域是您需要设置的.
更新:刚刚在这里看了一下,看来我的记忆力并没有让我失望:-)
最简单的方法是输入:
* hard nproc 50
Run Code Online (Sandbox Code Playgroud)
这会将所有用户限制为50个进程.您可能希望获得更细粒度的控制.
或者,ulimit如果limits.conf系统上不可用,您可以使用强制限制.您必须确保所有已启动的进程受到限制,例如,将其放入/etc/profile和所有其他可能的入口点:
ulimit -Hu 50
Run Code Online (Sandbox Code Playgroud)