
Linux
EricJeffrey
这个作者很懒,什么都没留下…
展开
-
服务器被黑记录-问题、探索与检测
问题发现:系统出现了个挖矿的docker容器,删除了但忽略了(根源在此,docker容器的远程端口没有认证,出现了问题)执行sudo或htop命令输出奇怪字符执行touch等创建文件命令,生成的文件读写权限很奇怪问题探索:开始以为是sudo、bash或htop的问题使用strace跟踪调用发现了奇怪的write(1, "\210$\255\373", 4)查看htop、sudo等对应版本源码,发现可能是某些系统lib的问题意识到是共享库出问题了然后发现用touch后其他创建的文原创 2021-01-30 13:27:20 · 252 阅读 · 0 评论 -
Epoll使用简介
简单介绍epoll在网络套接字上的使用。首先是epoll的使用,主要步骤创建epoll实例 - epoll_create1(0)调用epoll_ctl添加、修改或者删除监听套接字。需要使用 epoll_event对象struct epoll_event tmpEvent;tmpEvent.events = EPOLLIN, tmpEvent.data.fd = fd;使用epoll_wait监听那么如果要使用epoll监听TCP连接,可以按照如下步骤:socket() + bind(原创 2020-08-14 16:12:37 · 393 阅读 · 0 评论 -
poll使用介绍 - 简单服务器
Linux系统提供了`select, poll, epoll`三种更加高效的IO模型,这里使用一个例子简单介绍一下`poll`在套接字上的使用。基于事件的IO模型允许服务端使用事件触发的方式,在客户端发送请求时触发读取`read`操作,并在写操作`write`不会阻塞的时候写数据。这种IO模型允许使用更少的线程处理更多的客户端连接,能够降低系统负担,提高应用的服务效率。原创 2020-08-14 11:11:41 · 1477 阅读 · 0 评论 -
使用Docker安装完整Ubuntu容器
文章目录步骤pull镜像 docker pull ubuntu --> image-id使用上述镜像启动容器,名为xxx,后面要用到这个容器 docker run -it --name xxx image-id,替换xxx和image-id现在应该进入终端了,实际就是容器的/bin/bash了。这里需要如下操作更换源,清华源在此,记得选版本以及将https更换为http,因为没有编辑器,需要echo -e 'xxx\nxxx\n' > /etc/apt/sources.lista原创 2020-07-27 11:42:35 · 2904 阅读 · 0 评论 -
Ubuntu20.04将用户添加到sudo组并且设置不输密码
直接复制askubuntu的了,找了半天https://askubuntu.com/questions/192050/how-to-run-sudo-command-with-no-password对了,记得重新登入 re-login。I found that the most straight forward thing to do, in order to easily replicate this behavior across multiple servers, was the followin原创 2020-07-23 15:13:10 · 1607 阅读 · 0 评论 -
使用runc运行Tomcat容器并分析资源使用量
文章目录使用runc运行Tomcat容器并查看运行状态准备工作runcAlpine Linux文件系统Tomcat配置Config.jsonprocessinit.shhooksprestartpoststop环境变量、权限属性完整config.json, prestart.cpp, poststop.shpoststop.sh分析容器资源使用量使用runc运行Tomcat容器并查看运行状态尽...原创 2019-11-29 11:41:45 · 471 阅读 · 0 评论 -
使用runc运行alpine_linux容器
文章目录下载 解压镜像配置 运行已知信息具体过程问题与解决总结上一篇使用runc与oci-image-tool运行容器中虽然成功使用runc运行起来了容器,但遇到了不少问题。本文再次讲述使用runc运行alpine linux容器,并解决上一次出现的相关问题。注: 本文命令均在Ubuntu 18.04x64下运行通过下载 解压镜像skopeo与oci-image-tool分别用来下载与解压...原创 2019-11-09 13:07:13 · 540 阅读 · 0 评论 -
使用runc与oci-image-tool运行容器
文章目录skopeo下载镜像oci-image-tool解压、创建镜像runc运行容器内存使用情况本文描述了如何使用skopeo下载镜像,使用oci-image-tool打包/创建bundle以及使用runc运行容器。参考如何绕过docker运行hello-world,什么是容器的runtime?以及容器镜像规范。环境: Ubuntu 18.04.skopeo下载镜像skopeo需要从源码安...原创 2019-10-25 19:18:09 · 680 阅读 · 0 评论 -
Linux CGroup记录
文章目录结构查看subsystem创建、管理cgroupsubsystem使用CGroup使用pids-subsystem限制进程数将进程分组,对一组进程进行统一的资源监控和限制。逻辑上,CGroup将系统中的进程组织成一颗一颗独立的树结构。树将进程分组,然后使用subsystem对这些组进程资源限制、统计等操作。参考了Linux Namespace和Cgroup系列文章, Redhat SUB...原创 2019-10-12 15:25:59 · 588 阅读 · 0 评论 -
LeetCode 146 LRU Cache
文章目录题目大意思路算法一 - 暴力算法二 - 哈希表+链表算法三 - 哈希表&链表算法三代码算法二代码总结题目大意设计并实现LRU(Least Recently Used,最近最久未使用)缓存算法,支持两种操作get和put。get(key): 获取key的值,不存在为-1put(key, value): 更新key的值或者插入(key, value),若插入前缓存已满,则使用...原创 2019-10-06 21:07:26 · 125 阅读 · 0 评论 -
Unix系统数据文件和信息 - APUE
文章目录口令文件 /etc/passwd阴影口令 /etc/shadow组文件 /etc/group附属组 ID其它数据文件登陆账户记录系统标识时间和日期Linux设置时区本文内容来源于Unix高级编程,欢迎评论。口令文件 /etc/passwdpasswd结构包含用户名、密码、用户ID、组ID等信息,Linux在该结构中定义了下列结构:char *pw_name; char ...原创 2019-09-22 11:28:39 · 250 阅读 · 0 评论 -
Linux Namespace - 超简单容器构建
文章目录步骤概览运行结果展示构建过程目录准备复制可执行文件创建Namespace,配置文件系统安装busybox并执行shell程序完整代码总结Namespace隔离了进程、网路、用户等系统资源,本文将讲述如何通过Namespace创建一个超简单容器,并在容器内部运行简单的busybox程序。本文内容参考了LinuxNamespace系列(09),虽然目的相同,但本文采用C语言系统调用的方式实现...原创 2019-09-16 12:07:06 · 672 阅读 · 0 评论 -
Linux网络虚拟化再实践 - Bridge + NAT
文章目录步骤实现创建`Network Namespace`、虚拟网卡设备`veth`与桥设备`bridge`ip netns、ip link命令简介创建netns、veth、bridge配置桥设备、虚拟网卡设备配置`nat`iptables 简介`nat`表中包含如下四个内置chain:`nat`表中三个(部分)可用的内置target`iptables`命令的选项,只能指定其中一个定义*rule*...原创 2019-09-12 11:44:31 · 783 阅读 · 0 评论 -
Alpine Linux的安装配置
Alpine Linux是一款安全、轻量的Linux发行版,基于musl libc and busybox。本文简要描述了Alpine Linux的安装过程以及VMware Player端口映射的配置。原创 2019-07-17 13:19:04 · 3307 阅读 · 0 评论 -
Linux信号概述
Linux信号(signal)允许进程和内核中断其它进程,例如Ctrl+C会向终端中正在运行的进程发送SIGINT信号,一个进程试图除0时内核会发送给它一个SIGFPE信号,本文概述了Linux系统中与信号相关的函数调用,包括发送信号、处理信号、阻塞信号等,并列举了几个例子阐述相关内容。原创 2019-07-29 20:59:08 · 229 阅读 · 0 评论 -
Linux进程控制概述
Linux中进程控制是编写Linux(或Unix)程序时必备的技能,这篇文章概述了Linux中与进程控制相关的函数调用,如fork、execve、waitpid等,并采用例子对函数的使用作了简要说明。原创 2019-07-27 22:48:54 · 253 阅读 · 0 评论 -
Linux 并发编程简介-select,pthread与semaphore
文章目录select函数 - IO多路复用POSIX线程pthread简介创建线程终止线程回收已终止线程的资源分离线程初始化线程的共享变量同步线程 - 信号量生产者消费者模型预线程化服务器总结select函数 - IO多路复用select函数用来监控多个文件描述符上的读/写等事件,下为select相关的宏及函数:#include <sys/select.h>#include &...原创 2019-08-20 09:44:31 · 1138 阅读 · 0 评论 -
Linux Namespaces in operation记录 - part 5
文章目录创建User Namespace一个栗子映射用户与组ID又一个栗子映射规则以及深入探索映射总结注:本文绝大部分内容来自Linux Namespaces实践part 5,原文系列文章详细描述了Linux Namespace相关内容,英语过关的建议阅读原文,本文内容主要用来记录学习内容,如有不当之处还请评论区指正。User Namespace隔离了安全相关的属性,即用户ID、组ID、根目录...原创 2019-08-24 16:36:17 · 266 阅读 · 0 评论 -
Linux Namespaces in operation记录 - part 4
文章目录PID Namespace一个例子init进程与信号unshare() 与 setns()又一个例子小结注:本文绝大部分内容来自LinuxNamespaces实践part4 ,原文系列文章详细描述了Linux Namespace相关内容,英语过关的建议阅读原文,本文内容主要用来记录学习内容,如有不当之处还请评论区指正。PID Namespace一个新创建的PID Namespace中...原创 2019-08-21 19:24:44 · 198 阅读 · 0 评论 -
Linux Namespaces in operation记录 - part 6
文章目录User Namespace 与 capabilities一个栗子User Namespace与其它Namespace的结合再看capabilities总结注:本文绝大部分内容来自Linux Namespaces实践part 6,原文系列文章详细描述了Linux Namespace相关内容,英语过关的建议阅读原文,本文内容主要用来记录学习内容,如有不当之处还请评论区指正。User Na...原创 2019-08-27 22:18:27 · 280 阅读 · 0 评论 -
Linux Namespaces in operation记录 - part 7
文章目录基础网络Namespace管理Network Namespace 配置Network Namespace的用途总结注:本文绝大部分内容来自Linux Namespaces实践part 7,原文系列文章详细描述了Linux Namespace相关内容,英语过关的建议阅读原文,本文内容主要用来记录学习内容,如有不当之处还请评论区指正。Network Namespace隔离了系统中的网络设备...原创 2019-08-29 22:40:32 · 160 阅读 · 0 评论 -
Linux网络虚拟化 - Network Namespace 实践
文章目录创建 Network Namespace创建、配置虚拟网卡总结Network Namespace能够隔离系统的网络设备, IP地址, 端口等,每个netns有自己独立的网络栈,路由表等。Linux提供了ip netns命令方便我们创建、删除netns或者在给定的netns中执行命令。本文主要介绍使用ip等命令创建netns并使用NAT使配置netns中的网络。参考链接:Namespa...原创 2019-09-08 16:56:07 · 364 阅读 · 0 评论 -
Linux下套接字创建及连接建立简介 - APUE
目录连接过程创建套接字地址服务器开启监听代码客户端连接建立代码套接字地址格式数据传输线程创建代码Unix环境高级编程(APUE)中介绍了套接字socket的使用,本文从开发者使用过程角度简单介绍了服务器开启监听、客户端发起连接、子线程创建的一些过程以及Unix中套接字的地址格式等内容。连接过程创建套接字地址创建套接字地址 sockaddr_in (IPV4), sockaddr_in6 ...原创 2019-05-21 18:33:18 · 1405 阅读 · 0 评论