[root@localhost ~]# semanage [login|user|port|interface|fcontext|translation] -l
[root@localhost ~]# semanage fcontext [選項] [-first]  file_spec
| 選項 | 含義 | 
|---|---|
| -a | 添加默認安全上下文配置。 | 
| -d | 刪除指定的默認安全上下文。 | 
| -m | 修改指定的默認安全上下文。 | 
| -t | 設定默認安全上下文的類型 | 
[root@localhost ~]# semanage fcontext -l
#查詢所有的默認安全上下文
…省略部分輸出…
/var/www(/.*)? all files
system_u:object_r:httpd_sys_content_t:s0
…省略部分輸出…
#能夠看到/var/www/目錄下所有內容的默認安全上下文都是httpd_sys_content_t
[root@localhost ~]# mkdir /www
#新建/www/目錄,打算用這個目錄作為apache的網頁主目錄,而不再使用/var/www/html/目錄
[root@localhost ~]# ls -Zd /www/
drwxr-xr-x.root root unconfined_u:object_r:default_t:s0 /www/
#而這個目錄的安全上下文類型是default_t,那么apache進程當然就不能訪問和使用/www/目錄了
[root@localhost ~]# semanage fcontext -l | grep "/www"
#查詢/www/目錄的默認安全上下文
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t "/www(/.*)?"
#這條命令會給/www/目錄及目錄下的所有內容設定默認安全上下文類型是httpd_sys_content_t
[root@localhost ~# semanage fcontext -l | grep "/www"
…省略部分輸出…
/www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
#/www/目錄的默認安全上下文出現了
[root@localhost ~]# ls -Zd /www/
drwxr-xr-x.root root unconfined_u:object_r:default_t:s0 /www/
#但是查詢發現/www/目錄的安全上下文并沒有進行修改,那是因為我們只修改了默認安全上下文,而沒有修改目錄的當前安全上下文
[root@localhost ~]# restorecon -Rv /www/
restorecon reset /www context
unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
#恢復一下/www/目錄的默認安全上下文,發現類型已經被修改為httpd_sys_content_t
新聞熱點
疑難解答