一、SELINUX的运行模式
修改文件/etc/selinux/config
设置 SELINUX=disabled 以禁用
设置 SELINUX=permissive 宽松模式
设置 SELINUX=enforcing 强制模式
二、查看当前运行模式
三、临时修改运行模式
临时关闭SELINUX的方法。
临时启动SELINUX的方法。
四、配置SELINUX的两个主要方面
1、SELINUX上下文环境
(1)查看一个文件的上下文环境值
# ls -Z
创建一个默认网页
把创建的网页文件剪切存放到apache默认的网页目录下
查看创建网页文件的上下文环境值
查看默认的网页目录的上下文环境值
创建的网页文件上下文环境值和默认的网页目录下的上下文环境值是不同的,所以当用户访问http服务时不能访问。
把创建的网页复制存放到apache默认的网页目录下,网页文件上下文环境值和默认的网页目录下的上下文环境值是相同的,所以可以访问。
2.修改selinux上下文环境值
(2.1)把文件恢复到所在目录的默认值
# restorecon -Rv /var/www/html
(2.2)设置某个文件的指定值
[root@rhel6-1 html]# chcon -t admin_home_t abc
3.SELINUX布尔值相当于一个功能开关。
例一:实现FTP匿名用户上传
在ftp目录下创建一个incoming目录 ,使匿名用户可以上传。
客户端进行测试,发现不能上传文件。
解决的方案查看selinux是否开启,如果开启先关闭selinux,在进行测试。
在客户端进行测试,ftp上传文件是可以上传,说明就是selinux的原因导致不能上传文件。
开启selinux并进行ftp的上传,安装setroubleshoot排错工具,屏幕右上角会弹出提示,根据提示修改。
点击Troubleshoot,进入一下界面。
根据提示进行操作
更改后就可以上传文件了
例二:本地lj用户ftp登陆,直接用本地用户tom访问ftp,将会提示“不能改变目录”。
查看相关的selinux布尔值
再次用lj用户登录,就可以登录成功。
例三:windows通过samba访问linux
(1)安装samba
(2)添加一个samba用户为root,把系统用户添加成一个samba用户。
(3)启动服务
(4)在windows下用UNC路径访问,能够看到root的家目录,但是双击打不开
(5)获得与samba相关的selinux布尔值
# getsebool �Ca | grep samba
(6)开启samba服务的写入权限
# sebsebool -P samba_export_all_rw1
(7)再次在windows下用UNC路径访问,可以打开root的家目录
4、安装setroubleshoot
# yum install �Cy setroubleshoot*
重启
有任何的selinux违规行为,系统都会给出提示和解决方案。
如果是图形界面下,屏幕右上角会弹出消息。如果是字符终端下,可以查看日志/var/log/message。如:
[root@fanlj log]# tail -2/var/log/messages
Dec 4 11:39:42 fanlj setroubleshoot: SELinux is preventing /usr/sbin/httpdfrom getattr access on the file /var/www/html/index.html. For complete SELinuxmessages. run sealert -l96114052-1747-4334-873e-3a48c35c514c
Dec 4 11:39:42 fanlj setroubleshoot: SELinux is preventing /usr/sbin/httpdfrom getattr access on the file /var/www/html/index.html. For complete SELinuxmessages. run sealert -l96114052-1747-4334-873e-3a48c35c514c
根据提示,在终端上运行命令:
# sealert -l96114052-1747-4334-873e-3a48c35c514c ->显示selinux解决方案
5、获得SELINUX设置的帮助
(1)# man ftpd_selinux
# man httpd_selinux
# man samba_selinux
(2)有些服务,配置文件中也有说明
# vim /etc/samba/smb.conf