整理下本周工作中遇到的疑问;uid/euid/suid;docker镜像管理
1、系统中的父子进程关系,以及docker是如何处理的这种父子进程关系,线上问题发现,子进程长时间得不到退出。
2、调用system系统调用发生了啥事情,发现大量的页表拷贝。
3、通过shell命令通过tid得到pid
4、如何使用tcpdump看数据包的传输
5、stap中如何得到用户态的栈
6、SIGTERM、SIGKILL、SIGSTOP信号
sigtem是可以覆盖的,但是sigkill和sitstop的不可以截流。
7、如何查看某进程是否单独单独注册了信号处理函数?sigkill函数也是可以被覆盖的吗?在docker中,杀掉shim进程时发现整个容器都死掉了,这不符合进程的继承关系呢! SIGKILL信号不能被重载,那么kill shim的时候为啥子进程也退出了?是因为什么特殊的fork吗?shim也不是一个容器里的1号进程呀,为啥这里就n
回答:自己想可能有两种解决方案了1)shim自己做成一个pid namespace,在这个namespace下再fork出一个namespace,第二种方案是A->shim->docker container,dockerd中记录着shim和container的对应关系,然后给1号进程发信号,抓trace看下。果然
containerd-1038 [001] d... 114996.411125: signal_generate: sig=9 errno=0 code=0 comm=tail pid=2622 grp=1 res=0
tail-2622 [001] d... 114996.411157: signal_deliver: sig=9 errno=0 code=0 sa_handler=0 sa_flags=0
tail-2622 [000] d... 114996.435758: signal_generate: sig=17 errno=0 code=262146 comm=systemd pid=1 grp=1 res=0
这里的1038就是containerd进程下的一个线程,原来是这样管理的进程
【各种技能都会,全栈工程师,每天为自己制定的计划必须全部完成】
一个已经终止、但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息、释放它仍占用的资源)的进程是僵尸进程,fork了大量子进程,除非父进程等待去得子进程的终止状态,不然这些子进程终止后就会变成僵尸进程
8、进程成为僵尸进程会释放所有的fd吗?
在成为僵尸进程的时候,进程仍然保存着进程的,那么到底释放没有呢? 释放掉了
[<ffffffff8108401f>] do_exit+0x75f/0xae0
[<ffffffff81084423>] do_group_exit+0x43/0xb0
[<ffffffff810844a4>] SyS_exit_group+0x14/0x20
[<ffffffff818244f2>] entry_SYSCALL_64_fastpath+0x16/0x71
[<ffffffffffffffff>] 0xffffffffffffffff
【可不可以通过do_exit 0x75f/0xae0看出来到底在哪呢?通过readelf这】
9、readelf这些文件c文件和汇编到底准不准呢?
10、用户id和有效用户id和设置用户id
用户id就是登录的时候的用户id了,有效用户id,有效用户id是设置在可执行文件上。当执行exec时候,当可执行文件上设置了s位,那么程序是按照可执行的属主来确定实际的文件的可执行权限,并且这个权限会粗放在suid中。这样文件执行起来就很方便了,在程序执行的过程中,程序可以随时剥夺程序的执行权限。那么sudo又干了啥事呢?看下sudo做了啥事情,
-rwsr-xr-x 1 root root 136808 3月 31 2016 /usr/bin/sudo
现在是所以从sudo继承过来就有了root权限了!!!!发现了一件事情:
-rw-rw-r-- 1 guest guest 4096 8月 18 23:35 fileGuest
-rw-rw-r-- 1 guest2 guest2 0 8月 18 23:05 fileGuest2
-rw-rw-r-- 1 hon hon 4096 8月 18 23:35 fileHon
-rw-rw-r-- 1 hon hon 96 8月 18 22:52 Makefile
-rwsrwxr-x 1 guest guest 8960 8月 18 23:33 uid
在上面的文件中,执行uid程序(./uid),uid程序既能访问fileGuest,也能访问fileHon,这说明是uid和euid是一起来决定文件的访问权限了吗?
但是有个奇怪的现象就是sudo ./uid,此时进程的权限是uid=0,euid=1002(guest),然后去访问fileHon发生了错误,如果是uid和euid一起决定对文件的访问权限,为什么uid=0就打不开文件了呢?
所以uid必须完全match才可以执行!!!!!!!root还不行!!!!!!!!!!!!!!好了这个问题到此位置
整理下本周工作中遇到的疑问;uid/euid/suid;docker镜像管理的更多相关文章
- SpringBoot中使用Maven插件,上传docker镜像
开启docker远程端口 我上一篇里面写了,这里暴露的路径: 18.16.202.95:2375 简单构建 配置pom.xml文件 在properties中增加一行指定远程主机的位置 <prop ...
- IDEA中直接将 SpringBoot项目打包成 Docker镜像时 pom.xml的配置
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactI ...
- 测试工作中ADB命令实战
作者:TT,<测试架构师>微信公众号作者 大家能点击进来,说明还是对ADB有所了解或听说过的,可能也会比较熟练的掌握了这些命令,下面描述如有不对的地方,欢迎指正和交流学习,请多指教! 一. ...
- Windows10下的docker安装与入门 (三) 创建自己的docker镜像并且在容器中运行它
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
- 工作中 sql 整理(一)
这篇文章记录关于SQL的内容,有些凌乱,是工作中点滴的积累,只能按照时间顺序,逐次记录. 一.update 关联更新 1.需求 Table A TableB A表中的主键和B表中的主键相关联,关联 ...
- Android-服务中监听电源键和Home键的广播、在锁屏下仍然工作的方法
Android-服务中监听电源键和Home键的广播 http://blog.csdn.net/u014657752/article/details/49512485 Android开发之如何监听让服 ...
- 记录下工作中使用的pdf.js
在工作中遇到一个通过网页的形式浏览pdf文件以及图片的需求,图片简单,直接通过网页的形式打开这个图片的URL即可.而pdf这边,通过查询发现有一个名为pdf.js的神器. 简单介绍下,它可以在html ...
- 原生js(form)验证,可以借鉴下思路,应用到工作中
我在工作中时常使用form验证,在目前的公司做的表单验证用的angular的form组件,对于一个有追求的前端,或者应用在移动端写个form验证,引入angular或者jquery组件等验证,难免显得 ...
- 工作中常用的QTP操作Excel函数
前言 本文只是对工作中常用的EOM相关函数的整理,并不是要写个大而全的操作手册,如果想对EOM有更多的了解可以参考QTP的帮助文档或查看QTP安装目录\CodeSamplesPlus\UsingExc ...
随机推荐
- Java 8 中有趣的操作 Stream
Stream 不是java io中的stream 对象创建 我们没有必要使用一个迭代来创建对象,直接使用流就可以 String[] strs = {"haha","hoh ...
- BZOJ1011 莫比乌斯反演(基础题
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1101 [题目大意] 求[1,n][1,m]内gcd=k的情况 [题解] 考虑求[1,n ...
- Emgucv安装及使用
Emgucv安装 最近有个客户联系我,希望我能够为他们做一个识别瓷砖花纹的软件.应用场景是这样的:现场会有一个摄像头去拍摄流水线上运输的瓷砖,如果检测这块瓷砖的花纹不符合要求,则需要给PLC或输出板卡 ...
- JDK核心源码(2)
Java的基础知识有很多,但是我认为最基础的知识应该要属jdk的基础代码, jdk的基础代码里面,有分了很多基础模块,其中又属jdk包下面的lang包最为基础. 我们下面将总结和分析一下lang包下面 ...
- HttpClient&Jsoup爬虫的简单应用
详细的介绍已经有很多前辈总结,引用一下该篇文章:https://blog.csdn.net/zhuwukai/article/details/78644484 下面是一个代码的示例: package ...
- Thymeleaf 模板引擎用法
学习.改良.极致 博客园 首页 新随笔 联系 管理 订阅 随笔- 31 文章- 0 评论- 50 Thymeleaf 常用属性 文章主目录 th:action th:each th:fiel ...
- Git学习系列 (一)
打算花一个半月的时间学完Git.宏观上有更深的认识. 参考: Pro Git(中文版) 一.历史 本地版本控制系统 最原始的做法.复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区 ...
- 在Arch上安装VSCode的方法
首先去特硬去下载vscode的安装包 mkdir /tmp/vscode cd /tmp/vscode/ wget https://az764295.vo.msecnd.net/public/0.3. ...
- struts2源码分析-初始化流程
这一篇文章主要是记录struts.xml的初始化,还原struts2.xml的初始化流程.源码依据struts2-2.3.16.3版本. struts2初始化入口,位于web.xml中: <fi ...
- 关于TensorFlow的GPU设置
摘自:https://blog.csdn.net/byron123456sfsfsfa/article/details/79811286 1. 在使用GPU版的TensorFlow跑程序的时候,如果 ...