CentOS SELinux 权限管理实操指南
一 基础概念与模式切换
getenforce、sestatussetenforce 0|1(0 为 Permissive,1 为 Enforcing)/etc/selinux/config,设置 SELINUX=enforcing|permissive|disabled,修改后需重启SELINUXTYPE=targeted(仅保护选定进程),也有 minimum、mlsDisabled,排障可先用 Permissive 定位问题。二 安全上下文查看与修改
ls -Z /pathps -auxZ | grep <进程名>id -Zchcon -R -t <类型> <路径>(例:chcon -R -t httpd_sys_content_t /my/web)semanage fcontext -a -t <类型> "<路径>(/.*)?",再 restorecon -R <路径>/my/web 标记为 httpd_sys_content_t,使 httpd_t 可读取httpd_enable_homedirs 或将内容放入系统 Web 目录并正确打标chcon 的修改可能在重打标或 restorecon 后丢失;持久化请用 semanage fcontext + restorecon三 布尔值与常用开关
semanage boolean -l、getsebool -a、getsebool <name>setsebool [-P] <name> on|off(加 -P 永久生效,写入策略存储)setsebool -P allow_ftpd_anon_write 1setsebool -P ftp_home_dir 1setsebool -P httpd_enable_homedirs 1setsebool -P httpd_enable_cgi 1semanage boolean -l -C 查看与默认值不同的布尔值,变更前评估影响。四 排错与自定义策略
ausearch -m avc -ts recentsealert -a /var/log/audit/audit.logausearch -m avc -ts recent | audit2allow -M mypolicysemodule -i mypolicy.ppsesearch --allow(可结合 -s <主体类型> -t <客体类型> 精确查找)五 与防火墙的职责边界
audit.log/sealert,网络不通看 firewall-cmd --list-all。