Selinux的应用示例

                                                                   笔者:刘洋

一、             建立用户关联

1、  RHEL5中,默认的targeted策略中,只存在三个 selinux用户,分别是system_urootuser_u,表示系统拥有都,管理员和其他所有用户,可以用以下命令列出selinux用户:

#semanage  user  -l

2、  为了使linux的普通用户和selinux user_u建立联系,执行以下的命令:

#useradd  bob

#useradd  tom

#useradd  lisi

#semanage  login –a bob

#semanage  login –a tom

#semanage  login –a lisi

3、  可以用以下命令查看结果:

#semanage  login  -l

可以发现用户bob tom lisi 已经与user_u建立了联系

二、             配置类别

1、在selinux中,类别有两种表示方法,一种是由系统识别的,使用的是一些代码;还有一种是可以供人阅读的字符串。需要一种机制把这两种方法联系起来,这个任务是由配置文件setrans.conf承担的,首先看一下当前的类别情况:

#chcat -L
2
、可以看到目前有两种类别,现在在该文件中加入以下内容,表示要添加MarketingPersonnel两个类别,代号分别为s0:c1s0:c2

#cd  /etc/selinux/targeted

#vim setrans.conf

加入s0:c1=Marketing

     S0:c2=Personnel

现执行chcat –L查看,可以发现这两个类别已经添加上了

3、  为了使添加的类别在系统中生效,需要重启服务:

#service mcstrans  restart

三、             把类别分配给用户

1、  假设用户bob是业务部的,tom是人力资源部的,lisi是财务部的,执行以下命令表示把这两个类别分配给用户

#chcat  –l  -- +Marketing  bob

#chcat  –l  -- +Personnel  tom

#chcat  -l   -- +Marketing,+Personnel  lisi

2、  用以下命令查看用户所分配到的类别:

#chcat  -L  -l  bob

注意用户只有在下一次登录的时候才能生效

四、             把类别分配给文件

1、  假设用户bob在自己的主目录下创建一个文件tom.txt

#su  -  bob

$echo  “tom.txt”>tom.txt

2、  用命令查看该文件初始的安全上下文

$ls  -Z

此时文件还没有分到类别

3、用以下命令把Marketing 分给tom.txt文件

$chcat  -- +Marketing tom.txt

注意tom自己 是不属于Marketing

4、然后再查看tom.txt,按照selinux的规定tom是不能查看tom.txt 内容的,现在tom可以查看是因为现在的selinux处于随意的状态,此时会在/var/log/messages中留下记录

5、用root用户使用命令使selinux处于强制状态

#setenforce 1

Tom再查看时将不会成功