semanage命令用于管理SELinux的策略,格式为“semanage [选项] [文件]”。
SELinux服务极大地提升了Linux系统的安全性,将用户权限牢牢地锁在笼子里。semanage命令不仅能够像传统chcon命令那样—设置文件、目录的策略,还可以管理网络端口、消息接口(这些新特性将在本章后文中涵盖)。使用semanage命令时,经常用到的几个参数及其功能如下所示:
Ø -l参数用于查询;
Ø -a参数用于添加;
Ø -m参数用于修改;
Ø -d参数用于删除。
例如,可以向新的网站数据目录中新添加一条SELinux安全上下文,让这个目录以及里面的所有文件能够被httpd服务程序所访问到:
[root@LinuxLehehe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@LinuxLehehe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*
注意,执行上述设置之后,还无法立即访问网站,还需要使用restorecon命令将设置好的SELinux安全上下文立即生效。在使用restorecon命令时,可以加上-Rv参数对指定的目录进行递归操作,以及显示SELinux安全上下文的修改过程。最后,再次刷新页面,就可以正常看到网页内容了,结果如图所示。
[root@LinuxLehehe ~]# restorecon -Rv /home/wwwroot/
restorecon reset /home/wwwroot context unconfined_u:object_r:home_root_t:s0->
unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /home/wwwroot/index.html context unconfined_u:object_r:home_root_
t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
[root@LinuxLehehe ~]# firefox
真可谓是一波三折!原本认为只要把httpd服务程序配置妥当就可以大功告成,结果却反复受到了SELinux安全上下文的限制。所以,建议大家在配置httpd服务程序时,一定要细心、耐心。一旦成功配妥httpd服务程序之后,就会发现SELinux服务并没有那么难。