Linux开机启动项总结
在应急响应时有时会遇到系统被植入后门,添加启动项等操作,如果不清楚启动项的话,可能会被黑客植入一些开机启动项,无法彻底清除后门程序,所以在这梳理下启动项的东西
1.操作系统接管硬件以后,首先读入 /boot 目录下的内核文件
2.内核文件加载以后,就开始运行第一个程序 /sbin/init,它的作用是初始化系统环境。由于init是第一个运行的程序,它的进程编号(pid)就是1。其他所有进程都从它衍生,都是它的子进程。
3.许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
init进程的一大任务,就是去运行这些开机启动的程序。但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。
Linux预置七种运行级别(0-6)。一般来说,0是关机,1是单用户模式(也就是维护模式),6是重启
init进程首先读取文件 /etc/inittab,它是运行级别的设置文件。如果你打开它,可以看到第一行是这样的:
inittab文件中的值都是如下格式:
id:runlevel:action:process
id:
id是指入口标识符,他是个字符串,对于getty、mingetty等,需求id和tty的编号相同,否则getty将不能正常工作。
runlevel:
指定runlevel的级别。能指定多个runlevel级别,也能不为runlevel字段指定特定的值。
运行级别决定了系统启动的绝大部分行为和目的。这个级别从0到6,具有不同的功能。不同的运行级定义如下:
# 0 - 停机(千万别把initdefault设置为0,否则系统永远无法启动)
# 1 - 单用户模式
# 2 - 多用户,没有 NFS
# 3 - 完全多用户模式(标准的运行级)
# 4 - 系统保留的
# 5 - X11 (x window)
# 6 - 重新启动
action:
定义了该进程应该运行在何种状态下,其中action常用的种类有:
wait:切换至某级别运行一次process
respawn:此process终止的话,就重新启动之 initdefault:设置默认运行级别的,process省略
sysinit:设定系统初始化方式,此处一般指定为:/etc/rc.d/rc.sysinit
process:包含init执行的进程
那么,看inittab的配置,系统运行级别为3,运行级别3有些什么程序呢,系统怎么知道每个级别应该加载哪些程序呢?......回答是每个运行级别在/etc目录下面,都有一个对应的子目录,指定要加载的程序。

每个级别都会在在对应的目录下有对应的启动文件

上述文件名都是"字母S+两位数字+程序名"的形式。字母S表示Start,也就是启动的意思(启动脚本的运行参数为start),如果这个位置是字母K,就代表Kill(关闭) 后面的两位数字表示处理顺序,数字越小越早处理。
而且我们注意到,上述的文件都是软链文件,真实文件都存放在 /etc/int.d/目录下面,系统启动的时候都会加载该目录下的文件
我们以iptables举例,对应的软链文件为S08iptables,现在我们用chkconfig改变下启动状态

当我们执行 chkconfig --level 3 iptables off 后,iptables状态变为以K打头的文件,也就是系统启动后是要关闭的(在level3运行级别下)
上述说明针对的都是Centos5及以前的版本,在Centos6下不太一样,在上图1中,我们看到系统给出的说明中,系统在/etc/inittab中定义完运行级别后,其他的都不生效,而系统的初始化操作都在 /etc/init/*.conf文件中完成,例如系统初始化,是在/etc/init/rc.conf完成,我们查看下该文件

该文件执行了 exec /etc/rc.d/rc $RUNLEVEL命令,我们来看一下/etc/rc.d/rc这个脚本做了什么,脚本较长,简单理解就是
遍历 /etc/rc$RUNLEVEL.d/目录下的脚本文件,以K开头的就关闭,以S开头的就启动,和上面所说的过程是一样的
综上,我们在应急的时候需要排查的启动项有:
/etc/rc.d/rc
/etc/rc
/etc/rc.local
/etc/rc.d/rc.local
/etc/rc.d/rc
/etc/init/*.conf
/etc/rc$runlevel.d/ 该目录下都是链接的可执行文件,也可以自己添加可执行程序
以上目录都是重点排查的启动项目
另外一个添加启动项的地方在 /etc/profile里面,还有 /etc/profile.d/目录下以sh结尾的文件
Linux开机启动项总结的更多相关文章
- linux开机启动项问题。6版本与7版本不同之处 。
参考 网址:https://blog.csdn.net/weixin_41909810/article/details/82775247
- Linux minilogd占用内存过高及开机启动项修改
minilogd: 今天发现一台服务起的内存正常占用应该在70左右,但是内存占用却到了90%以上,用top查看发现minilogd占用了30%左右的内存,是不符合预期的,查看开机启动项并无minilo ...
- Linux 添加开机启动项的三种方法
linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh## This scri ...
- Linux 系统开机启动项清理
一般情况下,常规用途的 Linux 发行版在开机启动时拉起各种相关服务进程,包括许多你可能无需使用的服务,例如蓝牙bluetooth.Avahi. 调制解调管理器ModemManager.ppp-dn ...
- Linux的那些事-系统启动(增加开机启动项)
1 /etc/init.d 2 /etc/inittab 3 /etc/rc.d/init.d 1. /etc/init.d 是一般开机的启动服务存放在这个目录下,至于实现机制,其实 ...
- linux开机启动
开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程.分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当你打开计算机电源,计算机 ...
- linux系统设置服务开机启动3种方法,Linux开机启动程序详解
linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图 方法2:利用命令行chkconfig命令进行设置 简要说明 ...
- CentOS7 添加开机启动项
centos6 加入开机启动: vim /etc/rc.d/rc.local 注意命令不要出错,重启后生效 或者 centos 7 下: vim /lib/systemd/system/ ...
- linux开机启动详细流程图
linux开机启动详细流程图: 一.BIOS 加电自检当你按电源开关开机时,电脑会首先去启动BIOS(基本输入输出系统),BIOS一般是集成在主板上的.BIOS 的工作1.检测连接硬件,比如显卡,内存 ...
随机推荐
- Windows 10在2018四月更新中默认安装了OpenSSH客户端
客户端安装路径 C:\Windows\System32\OpenSSH 版本:
- jenkins:从FTP服务器下载文件
lftp 账号:密码@192.168.207.2 lcd /home/eccore/app/chen get -c /基础运维共享文件/OK-TeamViewer14.2.2558.rar
- PHP实现无限极分类的两种方式,递归和引用
面试的时候被问到无限极分类的设计和实现,比较常见的做法是在建表的时候,增加一个PID字段用来区别自己所属的分类 $array = array( array('id' => 1, 'pid' =& ...
- 设置主机防火墙规则(iptables规则设置及其与firewalld的生死纠葛)
一.什么是firewalld防火墙? firewalld防火墙在Linux主机里其实就是一道隔离工具,它只对进出主机的请求做判断处理.也就是说它只管进出,至于你进来后做了什么,就不在firewalld ...
- linux 网络配置及远程连接
linux 网络配置及远程连接 前言 本文结合自己的经历主要讲述以Centos7为基础网络配置和远程连接的解决步骤 网络配置: 安装好centos7后,是上不了网的,配置步骤如下: (1).输入命令d ...
- 解决安装eclipse时出现"Failed to load JNI shared library"
下午远程帮别人弄了很久的eclipse,安装时老是出现如图的字样 最后在安装配置文件中找到问题所在,这个最新版本的eclipse需要jdk1.8的环境,由于系统的jdk是1.7,版本过低从而导致安装失 ...
- Andrew Ng机器学习课程12
Andrew Ng机器学习课程12 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 引言:主要讲述了batch learning和online learnin ...
- 汉字在unicode中的位置
在www.unicode.org中查找汉字.china找不到,后来查资料才明白,应该查CJK,为什么内? unicode这个组织吧中国日本韩国的字合并了 中日韩统一表意文字(CJK Unified ...
- PAT(B) 1019 数字黑洞(Java)
题目链接:1019 数字黑洞 (20 point(s)) 分析 输入正整数n后,将n转成int型数组nArr[4] 用Arrays.sort(int[] a)方法将数组nArr非递减排序 很显然,非递 ...
- Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化
本文首发于“生信补给站”公众号,https://mp.weixin.qq.com/s/BWpy3F-nEKXCdVXmY3GYZg 当然还有更多R语言,生物信息学相关知识...