我设置了我的环境以创建所有崩溃的核心转储,但是当我在与执行用户不同的用户上运行设置了 SUID 的程序时,它不会创建核心转储。知道为什么会这样吗?我在网络上的任何地方都找不到它,我认为这是某种安全功能,但我想禁用它...
问题:
$ cd /tmp
$ cat /etc/security/limits.conf | grep core
* - core unlimited
root - core unlimited
$ ls -l ohai
-rwsr-sr-x 1 root root 578988 2011-06-23 23:29 ohai
$ ./ohai
...
Floating point exception
$ sudo -i
# ./ohai
...
Floating point exception (core dumped)
# chmod -s ohai
# exit
$ ./ohai
...
Floating point exception (core dumped)
Run Code Online (Sandbox Code Playgroud)
编辑: 为了让它尽可能安全地工作,我现在有以下脚本来设置环境:
mkdir -p /var/coredumps/
chown root:adm /var/coredumps/
chmod 772 /var/coredumps/
echo "kernel.core_pattern = /var/coredumps/core.%u.%e.%p" >> …Run Code Online (Sandbox Code Playgroud)