【发布时间】:2018-03-06 10:24:17
【问题描述】:
我在一个基于 debian 的系统上。我试图解决的漏洞之一是创建多个 zero byte 文件,这往往会耗尽文件系统中可用的 inode。
我的系统允许用户在沙盒环境中执行代码,并且设置了所有资源 ulimit(内存、cpu、进程、STDOUT 等)。我无法设置的一个资源限制是进程可以创建的文件总数。
问题的存在是因为沙箱中有几个全局可写目录,并且由于其他限制,无法将文件创建权限撤消给正在执行的进程。
ulimit 有
open files (-n)选项,但这仅指进程可以打开的并发文件描述符的数量。我尝试探索磁盘配额,但这看起来像是用户对用户可以创建的 inode 数量的特定限制。理想情况下,我希望这是进程限制而不是用户限制。
Q1) 有没有可靠的方法来限制进程在其生命周期内可以创建的文件描述符的数量?
或
Q2) 是否有任何低开销监控工具来跟踪进程的open(O_CREAT) 调用次数?
【问题讨论】:
标签: ubuntu process linux-kernel file-descriptor ulimit