进程管理和SELinux

1. 进程管理(process control)

  Linux系统的多用户与多任务环境是由多个不同PID的shell和CPU的分时切换来实现的,且系统稳定性极佳,进行进程管理可以通过在不同的终端操作以实现,同时可以进行任务管理,实现多任务的同时进行。这些功能的实现都与进程管理相关。
  一般来说,进程有三种状态,分别为就绪、运行和阻塞状态,此外还有创建和终止状态(5状态版本),三种状态转换图如下:
在这里插入图片描述

  • 创建状态:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态
  • 就绪状态:进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即运行
  • 执行状态:进程处于就绪状态被调度后,进程进入执行状态
  • 阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用
  • 终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行。

另外为用户观察需要,进程还有挂起和激活两种操作。挂起后进程处于静止状态进程不再被系统调用,对于操作是激活操作。
此外,在一些系统中,又增加了一些新的状态:

  • 浅度睡眠状态:进程正在睡眠(被阻塞),等待资源的到来是唤醒,也可以通过其他进程信号或时钟中断唤醒,进入运行队列。Linux 中使用TASK_INTERRUPTIBLE 宏表示此状态。
  • 深度睡眠状态:其和浅度睡眠基本类似,但不可被其他进程信号或时钟中断唤醒。Linux 中使用TASK_UNINTERRUPTIBLE 宏表示此状态。
  • 暂停状态:进程暂停执行接受某种处理。Linux 使用TASK_STOPPED 宏表示此状态。
  • 僵死状态(zombie):进程已经结束但未释放进程控制块(PCB),Linux 使用TASK_ZOMBIE 宏表示此状态。
  • 挂起状态:在执行状态的进程通过挂起即可进入就绪状态,如图所示,就绪状态和阻塞状态都分为活动态和静止态。由活动态向静止态转换就是通过挂起实现的。

1.1 进程与程序(process & program)

  • 程序(program):通常为binary program ,放置在储存媒体中(如硬盘、光盘、软盘、磁带等), 为实体文件的型态存在;
  • 进程(process):程序被触发后,执行者的权限与属性、程序的程序代码与所需数据等都会被加载内存中, 操作系统并给予这个内存内的单元一个标识符(PID),可以说,进程就是一个正在运作中的程序。

  程序一般存储在磁盘当中,通过用户的执行触发,触发后将程序加载到内存当中成为进程。OS为管理该进程,给予该进程执行者的权限/属性等参数,包括所需脚本与数据或文件数据等,并指定一个进程号PID。
在这里插入图片描述

1.2 子进程与父进程(child & parent process)

  子进程是由父进程所衍生出来的进程,每个进程的属性中有PPID,即父进程ID,子进程可以取得父进程的环境变量。
  进程之间的呼叫是通过fork and exec来进行的。进程都会藉由父进程以复制(fork) 的方式产生一个一模一样的子进程, 然后被复制出来的子进程再以 exec 的方式来执行实际要进行的程序,最终就成为一个子进程的存在。过程如下图所示。
在这里插入图片描述

  • fork-and-exec是UNIX中所有process運作的模式。系統bootup的時候,第一個被執行的process(程式),其pid為1;經由fork-and-exec程序,啟動各個必要的process,而形成一個功能完整的作業系統。
  • fork是UNIX一個系統呼叫(system call),process fork時,會複製一個跟自己完全一模一樣的process (with different pid),並利用系統呼叫完成之傳回值,來區分parent process 與child process,而分別賦予child process不同的功能。
  • process於程式執行過程中,利用exec執行另一不同的程式,這個程式並且會完全取代原有程式(with the same pid)。

1.3 观察进程

1.3.1 ps :将某个时间点的进程运作情况撷取下来

★[root@study ~]# ps aux <==查阅系统所有的进程数据
★[root@study ~]# ps -l <==查阅当前bash下的进程数据
[root@study ~]# ps -lA <==也是能够观察所有系统的数据
[root@study ~]# ps axjf <==连同部分进程树状态
选项与参数:
-A :所有的 process 均显示出来,与 -e 具有同样的效用;
-a :不与 terminal 有关的所有 process ;
-u :有效使用者 (effective user) 相关的 process ;
x :通常与 a 这个参数一起使用,可列出较完整信息。
输出格式规划:
l :较长、较详细的将该 PID 的的信息列出;
j :工作的格式 (jobs format)
-f :做一个更为完整的输出。
  • ps -l指令信息列的含义:
    F:代表这个进程旗标(process flags),说明这个进程的总结权限,常见号码有:
     ①若为4 表示此进程的权限为root ;
     ②若为1 则表示此子进程仅进行复制(fork)而没有实际执行(exec)。
    S:代表这个进程的状态(STAT),主要的状态有:
     ①R (Running):该程序正在运作中;
     ②S (Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(signal)。
     ③D:可被唤醒的睡眠状态,通常这支程序可能在等待I/O 的情况(ex>打印)
     ④T:停止状态(stop),可能是在工作控制(背景暂停)或除错(traced) 状态;
     ⑤Z (Zombie):僵尸状态,进程已经终止但却无法被移除至内存外。
     ⑥UID/PID/PPID:代表此进程被该UID 所拥有/进程的PID 号码/此进程的父进程PID 号码
    C:代表CPU 使用率,单位为百分比;
    PRI/NI:Priority/Nice 的缩写,代表此进程被CPU 所执行的优先级,数值越小代表该进程越快被CPU 执行。
    ADDR/SZ/WCHAN:都与内存有关,ADDR 是kernel function,指出该进程在内存的哪个部分,如果是个running 的进程,一般就会显示『- 』 / SZ 代表此进程用掉多少内存/ WCHAN 表示目前进程是否运作中,同样的, 若为 - 表示正在运作中。
    TTY:登入者的终端机位置,若为远程登录则使用动态终端接口(pts/n);
    TIME:使用掉的CPU 时间,注意,是此进程实际花费CPU 运作的时间,而不是系统时间;
    CMD:就是command 的缩写,造成此进程的触发程序之指令为何。
  • ps aux指令信息列含义
    USER:该 process 属于那个使用者账号的?
    PID :该 process 的进程标识符。
    %CPU:该 process 使用掉的 CPU 资源百分比;
    %MEM:该 process 所占用的物理内存百分比;
    VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
    RSS :该 process 占用的固定的内存量 (Kbytes)
    TTY :该 process 是在那个终端机上面运作,若与终端机无关则显示 ?,另外, tty1-tty6 是本机上面的登入者进程,若为 pts/0 等等的,则表示为由网络连接进主机的进程。
    STAT:该进程目前的状态,状态显示与 ps -l 的 S 旗标相同 (R/S/T/Z)
    START:该 process 被触发启动的时间;
    TIME :该 process 实际使用 CPU 运作的时间。
    COMMAND:该进程的实际指令为何?

1.3.2 top:动态观察进程变化

[root@study ~]# top [-d 数字] | top [-bnp]
选项与参数:
-d :后面可以接秒数,就是整个进程画面更新的秒数。预设是 5 秒;
-b :以批次的方式执行 top ,还有更多的参数可以使用喔!
通常会搭配数据流重导向来将批次的结果输出成为文件。
-n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
-p :指定某些个 PID 来进行观察监测而已。
在 top 执行过程当中可以使用的按键指令:
? :显示在 top 当中可以输入的按键指令;
P :以 CPU 的使用资源排序显示;
M :以 Memory 的使用资源排序显示;
N :以 PID 来排序喔!
T :由该 Process 使用的 CPU 时间累积(TIME+) 排序。
k :给予某个 PID 一个讯号 (signal)
r :给予某个 PID 重新制订一个 nice 值。
q :离开 top 软件的按键。

1.3.3 pstree:以进程树形式观察进程

[root@study ~]# pstree [-A|U] [-up]
选项与参数:
-A :各进程树之间的连接以 ASCII 字符来连接;
-U :各进程树之间的连接以万国码的字符来连接。在某些终端接口下可能会有错误;
-p :并同时列出每个 process 的 PID;
-u :并同时列出每个 process 的所属账号名称。

对于寻找进程之间的相关性而言,如寻找子进程的父进程,这个指令非常便利

1.4 进程管理

进程管理的机制是,向想要管理的进程发送一个讯号(signal),进程会按照讯号相对应的动作进行反应。讯号的类型有:
在这里插入图片描述

  • 删除某个进程,利用kill或者killall我们可以使用PID 或者是启动该进程的指令名称;
  • 删除某个服务,利用killall ,可将系统当中所有以某个指令名称启动的进程全部删除。

1.4.1 kill:将讯号传给进程

kill命令通常会配合ps,pstree等指令寻找进程相应的pid,之后再进行进程的管理

kill -signal pid
-l :列出目前 kill 能够使用的讯号 (signal) 有哪些?
signal :代表给予后面接的那个工作什么样的指示啰!用 man 7 signal 可知:
-1:重新读取一次参数的配置文件 (类似 reload);
-2 :代表与由键盘输入 [ctrl]-c 同样的动作;
-9 :立刻强制删除一个工作;
-15:以正常的进程方式终止一项工作。

1.4.2 killall:将讯号通过指令名称传给进程

[root@study ~]# killall [-iIe] [command name]
选项与参数:
-i :interactive 的意思,交互式的,若需要删除时,会出现提示字符给用户;
-e :exact 的意思,表示『后面接的 command name 要一致』,但整个完整的指令
不能超过 15 个字符。
-I :指令名称(可能含参数)忽略大小写。

1.5 进程执行的顺序

  进程的执行顺序由进程的PRI值决定,其值越小执行就越优先。而PRI值由priority值和nice值共同组成,其中priority值是核心动态调整的,用户无法直接调整PRI的值。PRI的计算式为:
P R I ( n e w ) = P R I ( o l d ) + n i c e PRI(new)=PRI(old)+nice PRI(new)=PRI(old)+nice
  由上式看出nice 值可以影响PRI ,但是最终的 PRI仍是要经过系统分析后才会决定的。注意事项如下:

  • nice 值可调整的范围为-20 ~ 19 ;
  • root 可随意调整自己或他人进程的Nice 值,且范围为-20 ~ 19 ;
  • 一般使用者仅可调整自己进程的Nice 值,且范围仅为0 ~ 19 (避免一般用户抢占系统资源);
  • 一般使用者仅可将nice 值越调越高,例如本来nice 为5 ,则未来仅能调整到大于5;

调整进程的nice值有三种方式:

  • 一开始执行程序就立即给予一个特定的nice 值:用nice [-n 数字] command指令;
  • 调整某个已经存在的PID 的nice 值:用renice [number] PID 指令。
  • top指令,之后再按r,之后输入新的nice值对进程的nice值进行调整。

2. 工作管理(job control)

2.1 工作概念

  • 作业是用户向计算机提交任务的任务实体。在用户向计算机提交作业后,系统将它放入外存中的作业等待队列中等待执行。而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。任一进程,只要它被创建,总有相应的部分存在于内存中。
  • 一个作业可由多个进程组成,且必须至少由一个进程组成,反过来则不成立。
  • 作业是shell里面的一个概念,主要用在批处理系统中,像UNIX这样的分时系统中就没有作业的概念。而进程的概念则用在几乎所有的多道程序系统中。
  • 作业,是我们的所有操作都是提交给shell,然后通过shell进行解释后再执行,管道连起来的命令以及自己写的shell程序都相当于一个批处理。

2.2 工作管理概念

  进行工作管理的行为,要求每个工作都是同一个bash shell的子进程,亦即彼此之间是有相关性的。在进程管理时由其他tty来管理在本tty中提交的工作是行不通的,同时有些时候用户能够登陆的终端数是有限的。
  在一个终端中,可以出现提示字符让用户操作的环境称为 前景(foreground) ,除开前景中的工作,其余工作就可放入 背景(background) 当中去暂停或运作,且放入背景的工作是不能ctrl+c终止的。

进行bash的job control必须注意的限制为:

  • 这些工作所触发的进程必须来自于你shell 的子进程(只管理自己的bash)
  • 前景:你可以控制与下达指令的这个环境称为前景的工作(foreground)
  • 背景:可以自行运作的工作,你无法使用[ctrl]+c 终止他,可使用bg/fg 呼叫该工作
  • 背景中执行的进程不能等待terminal/shell 的输入(input)

2.3 工作管理指令

  1. 直接将指令丢到背景中执行&,如tar -zpcf /tmp/etc.tar.gz /etc &
  2. 将目前的工作丢到背景中暂停[ctrl]-z
  3. 观察目前的背景工作状态 jobs [-lrs]
    -l :除了列出 job number 与指令串之外,同时列出 PID 的号码;
    -r :仅列出正在背景 run 的工作;
    -s :仅列出正在背景当中暂停 (stop) 的工作;
    指令下达后会列出 + - 号,+ 代表最近被放到背景的工作号码, - 代表最近最后第二个被放置到背景中的工作号码
  4. 背景工作拿到前景来处理fg %jobnumber
    %jobnumber :jobnumber 为工作号码(数字)。注意,% 是可有可无的;
  5. 让工作在背景下的状态变成运作bg %jobnumber,参数和fg一样;
  6. 管理背景当中的工作kill [-signal %jobnumber] [-l]
    -l :列出目前 kill 能够使用的讯号 (signal) 有哪些?
    signal :代表给予后面接的那个工作什么样的指示啰!用 man 7 signal 可知:
    -1 :重新读取一次参数的配置文件 (类似 reload);
    -2 :代表与由键盘输入 [ctrl]-c 同样的动作;
    -9 :立刻强制删除一个工作;
    -15:以正常的进程方式终止一项工作。
    与fg和bg不同,%不可省略,专用于工作管理,不加%指的是关闭进程,数字为pid
  7. 脱机管理:使用atd突发性工作排程当中的at指令,或是nohup [指令与参数] [&]前/背景中工作,该指令(加上&)可让在背景的工作在你注销后还能够继续的执行。

2.4 系统资源与文件状态查看

  • 查看内存使用情况free:
[root@study ~]# free [-b|-k|-m|-g|-h] [-t] [-s N -c N]
选项与参数:
-b :直接输入 free 时,显示的单位是 Kbytes,我们可以使用 b(bytes), m(Mbytes)
k(Kbytes), 及 g(Gbytes) 来显示单位喔!也可以直接让系统自己指定单位 (-h)
-t :在输出的最终结果,显示物理内存与 swap 的总量。
-s :可以让系统每几秒钟输出一次,不间断的一直输出的意思!对于系统观察挺有效!
-c :与 -s 同时处理~让 free 列出几次的意思~
  • 查阅系统与核心相关信息uname:
[root@study ~]# uname [-asrmpi]
选项与参数:
-a :所有系统相关的信息,包括底下的数据都会被列出来;
-s :系统核心名称
-r :核心的版本
-m :本系统的硬件名称,例如 i686 或 x86_64 等;
-p :CPU 的类型,与 -m 类似,只是显示的是 CPU 的类型!
-i :硬件的平台 (ix86)
  • 观察系统启动时间与工作负载uptime
  • 追踪网络或socket文件:netstat
[root@study ~]# netstat -[atunlp]
选项与参数:
-a :将目前系统上所有的联机、监听、Socket 数据都列出来
-t :列出 tcp 网络封包的数据
-u :列出 udp 网络封包的数据
-n :不以进程的服务名称,以埠号 (port number) 来显示;
-l :列出目前正在网络监听 (listen) 的服务;
-p :列出该网络服务的进程 PID

找出目前系统上已在监听的网络联机及其 PID: netstat -tulnp
  • 分析核心产生的信息dmesg
  • 侦测系统资源变化vmstat
[root@study ~]# vmstat [-a] [延迟 [总计侦测次数]] <==CPU/内存等信息
[root@study ~]# vmstat [-fs] <==内存相关
[root@study ~]# vmstat [-S 单位] <==设定显示数据的单位
[root@study ~]# vmstat [-d] <==与磁盘有关
[root@study ~]# vmstat [-p 分区槽] <==与磁盘有关
选项与参数:
-a :使用 inactive/active(活跃与否) 取代 buffer/cache 的内存输出信息;
-f :开机到目前为止,系统复制 (fork) 的进程数;
-s :将一些事件 (开机至目前为止) 导致的内存变化情况列表说明;
-S :后面可以接单位,让显示的数据有单位。例如 K/M 取代 bytes 的容量;
-d :列出磁盘的读写总量统计表
-p :后面列出分区槽,可显示该分区槽的读写总量统计表

procs ------------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
  • 由文件(或文件系统)找出正在使用该文件的进程fuser:
[root@study ~]# fuser [-umv] [-k [i] [-signal]] file/dir
选项与参数:
-u :除了进程的 PID 之外,同时列出该进程的拥有者;
-m :后面接的那个档名会主动的上提到该文件系统的最顶层,对 umount 不成功很有效!
-v :可以列出每个文件与进程还有指令的完整相关性!
-k :找出使用该文件/目录的 PID ,并试图以 SIGKILL 这个讯号给予该 PID;
-i :必须与 -k 配合,在删除 PID 之前会先询问使用者意愿!
-signal:例如 -1 -15 等等,若不加的话,预设是 SIGKILL (-9) 啰!

对于结果中的ACCESS选项:
c :此进程在当前的目录下(非次目录);
e :可被触发为执行状态;
f :是一个被开启的文件;
r :代表顶层目录 (root directory);
F :该文件被开启了,不过在等待回应中;
m :可能为分享的动态函式库;
  • 列出被进程所开启的文件档名lsof:
[root@study ~]# lsof [-aUu] [+d]
选项与参数:
-a :多项数据需要『同时成立』才显示出结果时!
-U :仅列出 Unix like 系统的 socket 文件类型;
-u :后面接 username,列出该使用者相关进程所开启的文件;
+d :后面接目录,亦即找出某个目录底下已经被开启的文件!
  • 找出某支正在执行的程序的PIDpidof
[root@study ~]# pidof [-sx] program_name
选项与参数:
-s :仅列出一个 PID 而不列出所有的 PID
-x :同时列出该 program name 可能的 PPID 那个进程的 PID

3. SELinux(security enhanced linux)

3.1 SELinux介绍

  SELinux 是由美国国家安全局(NSA) 开发的,当初开发这玩意儿的目的是因为很多企业界发现, 通常系统出现问题的原因大部分都在于内部员工的资源误用所导致的,实际由外部发动的攻击反而没有这么严重。为此开发了SELinux,其是整合到核心的一个模块
  自主式访问控制(Discretionary Access Control, DAC):依据进程的拥有者与文件资源的rwx 权限来决定有无存取的能力;
  强制式访问控制(Mandatory Access Control, MAC):针对特定的进程与特定的文件资源来进行权限的控管,同时提供一些预设的政策(Policy) ,并在该政策内提供多个规则(rule) ,可以选择是否启用该控制规则。比如设定Apache服务,哪些是正规目录,哪些是非正规目录。
在这里插入图片描述

3.2 SELinux运作模式

3.2.1 SELinux的三种运作模式

SELinux有三种运作模式,分别为:

  • enforcing:强制模式,代表SELinux 运作中,且已经正确的开始限制domain/type 了;
  • permissive:宽容模式:代表SELinux 运作中,不过仅会有警告讯息并不会实际限制domain/type 的存取。这种模式可以运来作为SELinux 的debug 之用;
  • disabled:关闭,SELinux 并没有实际运作。

三种运作模式的运作流程名词解释如下:

在这里插入图片描述

主体(subject):想要管控的对象,也就是进程,process;
目标(object):主体进程想要存取的目标资源,一般是文件或文件系统;
政策(policy):SELinux会依据服务来订制基本的存取安全政策,政策中还有详细的规则指定不同的服务开放某些资源的存取与否。提供的三个主要的政策有:
  ①targeted::针对网络服务限制较多,针对本机限制较少,是预设的政策;
  ②minimum:由target 修订而来,仅针对选择的进程来保护;
  ③mls:完整的SELinux 限制,限制方面较为严格。
安全性本文(security context):主体与目标的安全性本文一致才能顺利对目标进行存取。
  ①其是放置在文件的inode节点当中的,所以对比安全性本文同样需要进入文件inode,之后即可对比rwx权限;
  ②安全本文的观察使用命令ls -Z进行。安全性本文主要用冒号分为三个字段:

身份 Identify:
	unconfined_u不受限的用户,文件产生于不受限的进程;
	system_u系统用户,是系统产生的文件;
角色 role:
	object_r:代表的是文件或目录等文件资源,最为常见;
	system_r:代表的就是进程,一般使用者也会被指定成为system_r ;
类型 type:targeted政策中,主体能否存取目标与类型字段有关。对于进程和文件定义分别为:
	type:在文件资源(Object) 上面称为类型(Type);
	domain:在主体进程(Subject) 则称为领域(domain) ,一般domain可包含多个type。

3.2.2 SELinux运作模式查看和更改

  • 获取当前SELinux模式,通过getenforce命令;
  • 获取当前SELinux政策,通过sestatus [-vb]命令;
[root@study ~]# sestatus [-vb]
选项与参数:
-v :检查列于 /etc/sestatus.conf 内的文件与进程的安全性本文内容;
-b :将目前政策的规则布尔值列出,亦即某些规则 (rule) 是否要启动 (0/1) 之意;
  • SELinux的配置文件是/etc/selinux/config,若是想要修改政策,直接vim该配置文件即可;
  • SELinux 模式在enforcing 与permissive 之间切换的方法为setenforce命令:
[root@study ~]# setenforce [0|1]
选项与参数:
0 :转成 permissive 宽容模式;
1 :转成 Enforcing 强制模式

3.3 SELinux政策内规则管理

  • SELinux各个规则的布尔值查询,除了上小节当中的sestatus -b命令还可使用getsebool [-a] [规则的名称]指令;
  • 查询SELinux 各个规则规范的主体进程能够读取的文件SELinux type使用指令: seinfo, sesearch
    若是没有seinfo工具,输入如下命令进行安装yum install setools-console.x86_64
[root@study ~]# seinfo [-Atrub]
选项与参数:
-A :列出 SELinux 的状态、规则布尔值、身份识别、角色、类别等所有信息
-u :列出 SELinux 的所有身份识别 (user) 种类
-r :列出 SELinux 的所有角色 (role) 种类
-t :列出 SELinux 的所有类别 (type) 种类
-b :列出所有规则的种类 (布尔值)

[root@study ~]# sesearch [-A] [-s 主体类别] [-t 目标类别] [-b 布尔值]
选项与参数:
-A :列出后面数据中,允许『读取或放行』的相关数据
-t :后面还要接类别,例如 -t httpd_t
-b :后面还要接SELinux 的规则,例如 -b httpd_enable_ftp_server
E.g. [root@study ~]# sesearch -A -s crond_t | grep spool
  • 修改SELinux规则的布尔值setsebool
[root@study ~]# setsebool [-P] 『规则名称』 [0|1]
选项与参数:
-P :直接将设定值写入配置文件,该设定数据未来会生效的!
  • 让文件恢复正确的SELinux type使用restorecon
[root@study ~]# restorecon [-Rv] 文件或目录
选项与参数:
-R :连同次目录一起修改;
-v :将过程显示到屏幕上
  • 默认目录的安全性本文查询与修改semanage
[root@study ~]# semanage {login|user|port|interface|fcontext|translation} -l
[root@study ~]# semanage fcontext -{a|d|m} [-frst] file_spec
选项与参数:
fcontext :主要用在安全性本文方面的用途, -l 为查询的意思;
-a :增加的意思,你可以增加一些目录的默认安全性本文类型设定;
-m :修改的意思;
-d :删除的意思。

E.g. 查询一下 /etc /etc/cron.d 的预设 SELinux type 为何
[root@study ~]# semanage fcontext -l | grep -E '^/etc |^/etc/cron'
E.g. 将 mycron 默认值改为 system_cron_spool_t 啰
[root@study ~]# semanage fcontext -a -t system_cron_spool_t "/srv/mycron(/.*)?"

须注意,更改文件或目录的类型之后,需要使用restorecon -[Rv] file_spec命令将设置好的SELinux安全上下文立即生效。

3.4 SELinux的信息记录

  原本的SELinux 信息本来是以两个服务来记录的,分别是auditdsetroubleshootd。既然是同样的信息,因此CentOS 6.x (含7.x) 以后将两者整合在auditd 当中了。auditd会将关于SELinux 的错误讯息与克服方法记录到/var/log/messages 里头。

4. 重点梳理

在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yueguangmuyu/article/details/108807827
今日推荐