linux学习之SElinux

时间:2024-05-20 14:13:08

1、修改http服务:html下的文件本身是可以访问的,如果从其他地方复制一个文件到html目录下且selinux开启状态下该文件是不能够被访问的,因为上下文不同,需要修改上下文。

查看selinux状态:getenforce

设置selinux状态:setenforce(如果状态转换前后有disabled则需要重启)

查看上上下文:ls -Z

修改方法:chcon -t context file--临时修改

semanage fcontext -a -t   ----永久修改

修改完后需要重新加载上下文restorecon -FvvR

正常情况下通过浏览器是可以访问http服务下的index.html文件

linux学习之SElinux 

若在/var/www/html目录外新建一个文件并移动到该目录下则无法访问,原因是SElinux限制了访问

 linux学习之SElinux

查看SElinux状态:

getenforce-----enforce3种状态,enforcing(强制状态)/permissive(警告状态)/disabled(关闭状态)

设置SElinux状态:

setenforce-----0:设置为permissive状态,1设置为enforcing状态,两种状态可以在线转换不需要重启服务;

disabled状态需要在SElinux的配置文件/etc/selinux/config文件中修改,修改完成后需要重启http服务:

 linux学习之SElinux

如下图,设置为permissive状态后就可以访问文件,那么在enforcing状态下为何不能访问,又怎么能够访问呢?

 linux学习之SElinux

SElinux开启状态下,复制进来的文件不能访问是因为文件的上下文不同,如下图通过ls -z查看文件的上下文,index.html的上下文为httpd_sys_conten_t,而test.html的上下文为user_tmp_t

 linux学习之SElinux

修改上下文:chcon -t context file----修改上下文后在SElinux开启状态下可以正常访问

 linux学习之SElinux

chron是临时修改上下文,一旦电脑重启就会失效,有两种永久修改上下文的方法。方法一:restorecon filename

 linux学习之SElinux

方法二:先通过semanage fcontext -a -t context file修改上下文,但修改后不会立即生效,需要通过restorecon -FvvR filename进行刷新后才能生效

 linux学习之SElinux

 

2、对于FTP服务,当selinux打开后若要匿名用户能够上传文件则需要修改bool

修改匿名用户的上传权限,需要打开bool

如下图当selinux开启状态下匿名用户无法上传数据,关闭selinux后可以上传:

 linux学习之SElinux

那么,当selinux开启状态下如何让用户可以上传数据呢?需要设置bool

首先查看ftp服务的bool值状态:getsebool -a

 linux学习之SElinux

通过setsebool -P 设置bool值:

 linux学习之SElinux

再次连接ftp服务器,可以正常上传数据:

 linux学习之SElinux