Linux下SElinux详解
1.SElinux 全称:Security-Enhanced Linux,灵活的强制访问控制(MAC)系统,且内嵌于Linux Kernel中,仅 集合最小权限访问,
2. 查看文件上下文: ls -Z
[root@localhost ~]# ls -Z
-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
-rw-r--r--. root root system_u:object_r:admin_home_t:s0 install.log
-rw-r--r--. root root system_u:object_r:admin_home_t:s0 install.log.syslog
3.查看进程上下文: ps -auxZ
[root@localhost ~]# ps -auxZ
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
LABEL USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
system_u:system_r:init_t:s0 root 1 0.0 0.1 19356 1552 ? Ss Sep21 0:01 /sbin/init
system_u:system_r:kernel_t:s0 root 2 0.0 0.0 0 0 ? S Sep21 0:00 [kthreadd]
system_u:system_r:kernel_t:s0 root 3 0.0 0.0 0 0 ? S Sep21 0:00 [migration/0]
4.上下文解释
上下文一般分为3段,冒号分隔,依次为:用户(user) 角色(role) 类型(type)
例如:system_u:object_r:admin_home_t
system_u:用户
object_r:角色
admin_home_t:类型
5.Selinux设定方法:
5.1.getenforce #查看Selinux状态
5.2.setenforce 0 #设定Selinux为permissive 临时关闭selinux
不受selinux控制,仅记录日志在/var/log/audit/audit.log
5.3.setenforce 1 #设定Selinux为enforcing 临时开启selinux
受selinux控制权限,并记录日志在/var/log/audit/audit.log
5.4.永久开启,关闭或禁用selinux方法: 必须重启后才能生效
[root@localhost ~]# vim /etc/sysconfig/selinux
以下3项只能选择一项:
SELINUX=enforcing 开启
SELINUX=permissive 关闭
SELINUX=disabled 禁用
6.进程所属的上下文类型,俗称为域
文件所属的上下文类型,即称为类型
Selinux开启的情况下,进程只能操作域类型与上下文类型一样的文件
6.1.修改上下文类型命令:
chcon -R -t 类型 文件或进程
-R 递归
-t 上下文类型
6.2.修改受selinux管理的服务开关,称为布尔值
6.2.1查看布尔值:
[root@localhost ~]# getsebool -a
6.2.2.设定布尔值
setsebool samba_enable_home_dirs=1
setsebool samba_enable_home_dirs=on
6.2.3.恢复默认上下文
restorecon /var/www/html
6.2.4.查看默认上下文类型
semanage fcontext -l
6.2.5.查看selinux用户映射关系
semanage user -l
6.2.6.查看受selinux控制的端口
semanage port -l
6.2.7.将指定端口加入受selinux控制
semanage port -a -t http_port_t -p tcp 8060
转载于:https://blog.51cto.com/willow/1856944