Linux内核参数测试,linux 内核参数core_pattern测试

linux 内核参数core_pattern测试

参数介绍

. If the first character of the pattern is a '|', the kernel will treat

the rest of the pattern as a command to run. The core dump will be

written to the standard input of that program instead of to a file.

简单来说,该参数就是可以设定core dump文件的文件名及路径,以及可以利用管道将结果输入给管道右边的程序进行处理。

配置方式

设定core文件的最大值,默认为0,即不生成,只针对当前shell

ulimit -c 1024

查看当前core_pattern配置

#cat /proc/sys/kernel/core_pattern

core-%e-%p-%t

修改参数

#echo "/root/core_dump/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

echo "/home/chenyuhao/core_dump/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

测试方法

模拟生成core dump

sleep 15

按下Ctrl+\

修改core_pattern参数,是否能按照指定的路径及文件名生成dump。

echo "/root/core_dump/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

ulimit -c 1024

sleep 15

ctrl + \

^\Quit (core dumped) #能生成dump

默认参数下测试在无权限目录下能否生成dump。

#root权限700

echo "/root/core_dump/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

su - chenyuhao

ulimit -c 1024

sleep 15

ctrl + \

^\Quit #无法生成dump

echo "/home/chenyuhao/core_dump/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

su - chenyuhao

ulimit -c 1024

sleep 13

ctrl + \

^\Quit (core dumped) #能生成dump

配置sleep为只有执行权限时目录下能否生成dump

chmod 111 sleep

su - chenyuhao

ulimit -c 1024

sleep 15

ctrl + \

^\Quit #只有执行权限的程序无法生成dump

默认参数下测试在使用setuid运行sleep时目录下能否生成dump

echo "/root/core_dump/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

cp /bin/sleep /home/chenyuhao

cd /home/chenyuhao

chown root:root sleep

chmod 411 sleep

chmod u+s sleep

su - chenyuhao

ulimit -c 1024

sleep 13

ctrl + \

^\Quit #无法生成dump

调整suid_dumpable为2,重新测试第三步

echo 2 > /proc/sys/fs/suid_dumpable

su - chenyuhao

ulimit -c 1024

sleep 13

ctrl + \ #有dump

^\Quit (core dumped) #能生成dump

$ ls -l core_dump/

total 668

-rw------- 1 chenyuhao chenyuhao 393216 Jun 5 10:59 core-sleep-27587-1528167580

-rw------- 1 chenyuhao chenyuhao 393216 Jun 5 11:04 core-sleep-27780-1528167877

-rw------- 1 root chenyuhao 393216 Jun 5 11:15 core-sleep-28251-1528168507

-rw------- 1 root chenyuhao 393216 Jun 5 11:22 core-sleep-28436-1528168938

#setuid生成的core dump文件只有root能访问。

设置一个777权限的目录,sleep配置为setuid,suid_dumpable参数设为0或者2,普通用户运行能否生成dump。

echo "/root/core_dump/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

echo 0 > /proc/sys/fs/suid_dumpable

chmod 411 sleep

chmod u+s sleep

chmod 777 /root/core_dump

su - chenyuhao

ulimit -c 1024

./sleep 15

^\Quit#无法生成core dump

echo 2 > /proc/sys/fs/suid_dumpable

su - chenyuhao

ulimit -c 1024

./sleep 15

^\Quit (core dumped)#可以生成

sleep配置为setuid,suid_dumpable参数设为0或者2,core_pattern配置为管道形式,普通用户运行能否生成dump。

echo '|/home/chenyuhao/coredump.py /home/chenyuhao/core_dump/core_%e_%p' > /proc/sys/kernel/core_pattern

echo 0 > /proc/sys/fs/suid_dumpable

chmod 411 sleep

chmod u+s sleep

chmod 777 /root/core_dump

su - chenyuhao

ulimit -c 1024

./sleep 15

^\Quit#不能生成dump

echo 2 > /proc/sys/fs/suid_dumpable

su - chenyuhao

ulimit -c 1024

./sleep 15

^\Quit (core dumped)#可以生成

结论:

自定义core dump文件路径时需要注意配置好路径的权限。

在普通用户运行设置了setuid的程序一定要将suid_dumpable设置为2才能生成coredump文件。

要保证全部用户能在指定路径生成core dump,需要进行以下配置:

创建一个777的core dump文件路径。

将/proc/sys/kernel/core_pattern参数为core dump路径。

将/proc/sys/fs/suid_dumpable设定为2,保证使用setuid的程序能生成dump。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值