就如上图所示,首先,你得要知道,并不是所有的½程都会被
SELinux
所管制,因此最左边会出现
一个所谓的『有受限的½程主体』!那如何观察有没有受限
(confined )
呢?
很简单啊!就透过
ps -eZ
去撷取!举例来说,我们来找一找
crond
bash
这两只½程是否有被限制吧?
[root@study ~]#
ps
-
eZ | grep
-
E 'cron|bash'
system_u:system_r:
crond_t
:s0
-
s0:c0.c1023 1340 .
00:00:00 atd
unconfined_u:unconfined_r:
unconfined_t
:s0
-
s0:c0.c1023 13888 tty2 00:00:00 bash
unconfined_u:unconfined_r:
unconfined_t
:s0
-
s0:c0.c1023 28054 pts/0 00:00:00 bash
unconfined_u:unconfined_r:
unconfined_t
:s0
-
s0:c0.c1023 28094 pts/0 00:00:00 bash
sys
tem_u:system_r:
crond_t
:s0
-
s0:c0.c1023 28174 . 00:00:00 crond
如前所述,因为在目前
target
这个政策底下,只有第三个类型
(type)
字段会有影响,因此我们上表
½列出第三个字段的数据而已。
我们可以看到,
crond
确实是有受限的主体½程,而
bash
因为是
本机½程,因此就是不受限
(unconfined_t)
的类型!也就是说,
bash
是不需要经过图
16.5.4
的流
程,而是直½去判断
rwx
而已~。
了½了受限的主体½程的意义之后,再来了½一下,三种模式的运作吧!首先,如果是
Disabled
模式,那么
SELinux
½不会运作,当然受限的½程也不会经过
SELinux
也是直½去判断
rwx
已。那如果是宽容
(permissive)
模式呢?这种模式也是不会½主体½程抵挡
(
所以箭头是可以直½穿
透的喔!
)
,不过万一没有通过政策规则,或者是安全本文的比对时,
那么该读写动作½会被纪录起
(log)
,可作为未来检查问题的判断依据。
至于最终那个
Enforcing
模式,就是实际½受限主体½入规则比对、安全本文比对的流程,若失败,
就直½抵挡主体½程的读写行为,并且½他记录下来。
如果通通没问题,这才½入到
rwx
权限的判
断喔!这样可以理½三种模式的行为了吗?
那你怎么知道目前的
SELinux
模式呢?就透过
getenforce
吧!
[root@study ~]#
getenforce
Enforcing
<==
!就
示出目前的模式
Enforcing
另外,我们又如何知道
SELinux
的政策
(Policy)
为何呢?这时可以使用
sestatus
来观察:
[root@study ~]#
sestatus [
-
vb]
选项
参数
-
v
查列于
/etc/sestatus.conf
文件
½
程的安全性本文
容;
-
b
½
目前政策的
规则
值列出,亦即某些
规则
(rule)
是否要
启动
(0/1)
之意;
范例一:列出目前的
SELinux
使用哪
政策
(Policy)
[root@study ~]#
sestatus
SELinux status: enabled
<==
是否
启动
SELinux
SELinuxfs mount: /sys/fs/selinux
<==SELinux
的相
文件
据挂
载点
SELinux root directory: /etc/selinux
<==SELinux
的根目
所在
Loaded policy name: targeted
<==
目前的政策
何?