无效的。因此,当某个½程想要对文件½行存取时,
系统就会根据该½程的拥有者
/
群组,并比对文
件的权限,若通过权限检查,就可以存取该文件了。
这种存取文件系统的方式被称为『自主式访问控制
(Discretionary Access Control, DAC)
』,基本上,
就是依据½程的拥有者与文件资源的
rwx
权限来决定有无存取的能力。
不过这种
DAC
的访问控制
有几个困扰,那就是:
.
root
具有最高的权限
:如果不小心某支½程被有心人士取得,
且该½程属于
root
的权限,那么这支½程
就可以在系统上½行任何资源的存取!真是要命!
.
使用者可以取得½程来变更文件资源的访问权限
:如果你不小心½某个目录的权限设定为
777
,由于对任
何人的权限会变成
rwx
,因此该目录就会被任何人所任意存取!
这些问题是非常严重的!尤其是当你的系统是被某些漫不经心的系统管理员所掌控时!她们甚至觉得
目录权限调为
777
也没有什么了不起的危险哩
...
.
以政策规则订定特定½程读取特定
文件
:委任式访问控制
, MAC
现在我们知道
DAC
的困扰就是当使用者取得½程后,他可以½由这支½程与自己预设的权限来处
理他自己的文件资源。
万一这个用户对
Linux
系统不熟,那就很可能会有资源误用的问题产生。为
了避免
DAC
容易发生的问题,因此
SELinux
导入了委任式访问控制
(Mandatory Access Control,
MAC)
的方法!
委任式访问控制
(MAC)
有趣啦!他可以针对特定的½程与特定的文件资源来½行权限的控管!
就是说,即使你是
root
,那么在使用不同的½程时,你所能取得的权限并不一定是
root
而得要
看当时该½程的设定而定。如此一来,我们针对控制的『主体』变成了『½程』而不是使用者喔!
外,这个主体½程也不能任意使用系统文件资源,因为每个文件资源也有针对该主体½程设定可取用
的权限!
如此一来,控件目就细的多了!但整个系统½程那么多、文件那么多,一项一项控制可就
没完没了!
所以
SELinux
也提供一些预设的政策
(Policy)
,并在该政策内提供多个规则
(rule)
让你可以选择是否启用该控制规则!
在委任式访问控制的设定下,我们的½程能够活动的空间就变小了!举例来说,
WWW
服务器软件
的达成½程为
httpd
这支程序,
而默认情况下,
httpd
½能在
/var/www/
这个目录底下存取文件,
如果
httpd
这个½程想要到其他目录去存取数据时,
除了规则设定要开放外,目标目录也得要设定
httpd
可读取的模式
(type)
才行喔!限制非常多!
所以,即使不小心
httpd
cracker
取得了控
制权,他也无权浏览
/etc/shadow
等重要的配置文件喔!
简单的来说,针对
Apache
这个
WWW
网络服务使用
DAC
MAC
的½果来说,两者间的关系
可以使用下图来说明。
底下这个图示取自
Red Hat
训练½材,真的是很不错~所以被鸟哥½用来说
明一下!