1.啥是selinux
安全增强型Linux(Security-Enhanced Linux)简称selinux,它是一个Linux内核模块,也是Linux的一个安全子系统。
selinux的状态:
Enforcing:强制模式,在selinux运作时,已经开始限制domain/type
permissive:警告模式,在selinux运作时,会有警告信息,但不会限制domain/type的存取
disabled:关闭模式
使用getenforce命令查看当前模式
更改selinux的状态命令:
setenforce 1 ##更改selinux的状态为Enforcingsetenforce 0 ##更改selinux的状态为Permissive
注 : 当selinux关闭时,该命令无法使用
使用该命令只能切换开启时的两种状态,即Enforcing和Permissive
使用该命令切换selinux状态时,不需要重启电脑
selinux对文件的作用
当开启selinux后,selinux会给每个文件加载标签context,安全上下文必须配对,否则文件不能访问
开启selinux为Enforcing强制模式
在根目录下创建一个目录在此目录中新建一个文件,并且移动到ftp中的pub目录
用户登陆ftp查看文件
可以发现移动的文件看不到
使用ls -Z /var/ftp/命令查看该文件的安全上下文
临时更改安全上下文
chcon -t public_content_t /westos/ -R 临时更改安全上下文
chcon只是对安全上下文的临时修改,当系统selinux重启后,修改会失效
semanage fcontext -l | grep /westos 查看该文件是否有默认的安全上下文
semanage fcontext -a -t public_content_t '/westos(/.*)?' 永久更改目录安全上下文
restorecon -FvvR /westos/ 同步该目录的安全上下文
.本地用户上传权限的开启
getsebool -a | grep ftp 查看seLinux对ftp开关状态
setsebool -P ftp_home_dir on 允许本地用户上传文件 -P为永久开启
chmod 775 /home/*
chgrp ftp /home/*
登陆ftp,本地用户可以上传文件
匿名用户上传权限的开启
vim /etc/vsftpd/vsftpd.conf 在配置文件中打开匿名用户上传参数
写好之后重启服务
systemctl restart vsftpd
setsebool -P ftpd_anon_write on ##打开selinux匿名用户上传开关
semanage fcontext -a -t public_content_rw_t /var/ftp/pub ##安全上下文加入可写的权限说明
restorecon -FvvR /var/ftp/pub/ ##同步该目录的安全上下文
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
测试一下: