【发布时间】:2020-05-15 19:51:12
【问题描述】:
是否可以只为我的程序禁止创建核心转储?我知道可以使用ulimit 更改整个系统的行为,但我只想为我的程序阻止它。我应该在我的程序中编码什么?也许写一些内核模块?
【问题讨论】:
-
我看不出这样做的意义。是否允许核心转储是一个策略问题,应该由运行程序的用户和/或系统管理员决定。程序通常不应该尝试将这些事情掌握在自己手中。
-
在遵循@JohnBollinger 的评论后,可以创建一个无转储用户(或组),将该二进制文件归该用户所有,并在其上设置 SUID 位,以便程序按上述方式运行用户,并在 limits.conf 中限制该用户的核心转储。这样它就可以由系统管理员配置。
标签: c++ c linux-kernel coredump systems-programming