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文件的文件名及路径,以及可以利用管道将结果输入给管道右边的程序进行处理。

参考链接:http://man7.org/linux/man-pages/man5/core.5.html

参考链接:http://man7.org/linux/man-pages/man5/proc.5.html

配置方式

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

ulimit -c 1024

  1. 查看当前core_pattern配置

#cat /proc/sys/kernel/core_pattern

core-%e-%p-%t

  1. 修改参数

#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+\

  1. 修改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

  1. 默认参数下测试在无权限目录下能否生成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

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

chmod 111 sleep

su - chenyuhao

ulimit -c 1024

sleep 15

ctrl + \

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

  1. 默认参数下测试在使用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

  1. 调整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能访问。

  1. 设置一个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)#可以生成

  1. 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,需要进行以下配置:

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,656评论 18 139
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,163评论 2 33
  • 在Linux下程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使...
    随风化作雨阅读 45,388评论 2 15
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,261评论 9 467
  • 上一次写父亲是什么时候,大概是小学命题作文吧,《我的父亲》,早忘了写的什么了,八九不离十逃不出那些套路。 有三件事...
    苏步哲阅读 189评论 0 0