有没有办法指定核心转储文件的权限?
当我使用sysctl
这些是我看到的变量。
kern.corefile: /var/coredump/%N.core
kern.nodump_coredump: 0
kern.coredump: 1
kern.capmode_coredump: 0
kern.sugid_coredump: 1
debug.ncores: 5
debug.elf32_legacy_coredump: 0
debug.elf64_legacy_coredump: 0
这些都已配置为将核心正确转储到 /var/coredump 目录中。但是,我没有看到任何指定文件权限的方法。
我突然想到,我可以通过 root 的 crontab 运行一个脚本,每 1m 更改该目录的权限。然而,这似乎不是一个合适的解决方案。
有没有办法正确更改核心文件权限?
答案1
目前,内核总是会创建一个具有0600权限的core文件;它是硬编码在 C 源代码中的。
如果您可以重建内核,则要更改的行位于kern/kern_sig.c
(在 10.3 和 11.0 中)函数中corefile_open()
:
cmode = S_IRUSR | S_IWUSR;