参考文档
鸟哥的Linux私房菜 http://linux.vbird.org/linux_basic/0440processcontrol.php#selinux
SELinux Documentation https://www.nsa.gov/research/selinux/docs.shtml
enforcing / permissive
可以在/etc/sysconfig/selinux中设置SELinux的模式。
SELINUX=enforcing是强制模式,它会正常限制domain/type;
SELINUX=permissive是宽容模式,它不会实际限制存取,但会提醒警告信息;
也可以用
# setenforce 0
来临时配置,0是permissive, 1是enforcing。
sestatus
sestatus [-vb] 可以查看sestatus状态。
[root@vserver1 ~]# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: permissive Policy version: 24 Policy from config file: targeted
sestatus -b 查看当前bool值。
context
查看文件的context
# ll -Z
查看进程的context
# ps -Z
修改context
chcon [OPTION]... CONTEXT FILE... chcon [OPTION]... [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE... chcon [OPTION]... --reference=RFILE FILE...
恢复默认context
# restorecon -Rv /var/www/html/index.html
setroubleshoot
setroubleshoot可以提供访问失败时的解决方法。
安装setroubleshoot之后,如果有文件被SELinux阻止了访问,那么/var/log/message下可以看到setroubleshoot的相关条目。
[root@www ~]# cat /var/log/messages | grep setroubleshoot Mar 23 17:18:44 www setroubleshoot: SELinux is preventing the httpd from using potentially mislabeled files (/var/www/html/index.html). For complete SELinux messages. run sealert -l 6c028f77-ddb6-4515-91f4-4e3e719994d4
[root@www ~]# sealert -l 6c028f77-ddb6-4515-91f4-4e3e719994d4
Policy查询
[root@www ~]# seinfo [-Atrub] -A 所有信息; -t 列出type; -r 列出role; -u 列出user; -b 列出boolean;
查询与设置boolean
[root@vserver1 ~]# getsebool -a [root@vserver1 ~]# setsebool httpd_can_network_connect on
看有哪些context
/etc/selinux/targeted/contexts/