我正在使用基于debian的系统。我试图解决的漏洞之一是多个zero byte
文件创建,这往往会耗尽文件系统中可用的inode。
我的系统允许用户在沙盒环境中执行代码,并设置所有资源ulimit(内存,cpu,进程,STDOUT等)。我无法设置的一个资源限制是进程可以创建的文件总数。
存在该问题是因为沙箱中存在少量世界可写目录,并且由于其他约束,文件创建权限无法撤销到执行进程。
open files (-n)
选项,但这仅指进程可以打开的并发文件描述符数。Q1)是否没有可靠的方法来限制进程在其生命周期内可以创建的文件描述符的数量?
要么
Q2)任何低开销监控工具,用于跟踪进程的open(O_CREAT)
呼叫数量?
您可以使用setrlimit(2)(可以与bash builtin ulimit
一起使用)限制进程内的资源。
您可以在文件系统上设置disk quotas。
没有更精细的方法。
任何低开销监控工具,用于跟踪进程打开(O_CREAT)调用的次数?
您可以使用inotify(7)工具监控文件的创建。
您可以根据需要编写和使用一些FUSE文件系统。
再看看containers,也许是Docker。