ls -Z 查看安全令上下文
SElinux MAC(强制访问控制)
seliux: 限制程序只能访问特定的文件,selinux基于程序和文件安全类型上下文来判断权限
###注意:程序如果想要访问文件的内容,双方的安全类型上下文必须一致
ls -Z 查看文件的安全类型上下文
ls -dZ 查目录本身安全类型上下文
ps -efZ|grep 'http' 查看http进程的安全类型上下文
http文件的安全类型上下文:httpd_sys_content_t
http程序的安全类型上下文:httpd_t
cp:实在目标位置重新生成一个相同的内容 权限、归属、安全类型上下文 可能会变化
mv:单纯的移动 权限、归属、安全类型上下文不变
selinux三种模式
强制(enforcing):selinux会检查程序和文件的安全类型上下文必须一致,否者不能访问
宽容(permissive):selinux会检查程序和文件的安全类型上下文是不是一致,如果不一致,selinux不阻止
关闭(disabled):selinux不会检测程序和文件的安全类型上下文
命令:
setenforce 0/1 宽容/强制 临时修改selinux
getenforce 查看selinux的模式
/etc/selinux/config selinux的配置文件 #更改配置文件实现永久更该模式 重启生效
注意:开启状态和关闭状态之间切换需要重启才能生效
chcon -t 修改安全类型上下文的类型 #临时生效
ls -dZ 查目录本身安全类型上下文
选项:
-t 指定类型
-R 指定目录及目录里的内容
例子:
chcon -t http_sys_content_t /var/www/html/cc.html
chcom -R -t admin_home_t /var/www/html/ 修改目录及内容的类型上下文
永久生效:
semanage fcontext #永久生效 selinux当前内容类型上下文的预设模板
格式:semanage fcontext 选项 类型上下文 目标内容
选项:
-a 添加
-t 指定类型上下文
-d 删除
-D 删除所有
例子:
semanage fcontext -a -t httpd_sys_content_t /var/www/html(/.*)" #修改目录的类型上下文
semanage fcontext -a -t httpd_sys_content_t /var/www/html/aa.html #修改文件的类型上下文
semanage fcontext -D "/var/www/html(/.*)" 删除预设模板
man semanage-fcontext #查看semanage的手册
restorecon 目标内容 #将文件或目录的上下文恢复到预设值
选项:
-v 立即生效
-vR 目录及内容立即生效
selinux是允许特定的端口通过selinux
semanage port -l |grep http 查看你selinux允许httpd通过的端口
semanage port -a -t http_port_t -p tcp 82 允许82端口通过
semanage port -d -t http_port_t -p tcp 82 不允许82端口通过