新聞中心

那么,默認安全上下文該如何查詢和修改呢?這就要使用
semanage 命令了。該命令的基本格式如下:
[root@localhost ~]# semanage [login|user|port|interface|fcontext|translation] -l
[root@localhost ~]# semanage fcontext [選項] [-first] file_spec
其中,fcontext 主要用于安全上下文方面,-l 是查詢的意思。除此之外,此命令常用的一些選項及含義,如表 1 所示。
| 選項 | 含義 |
|---|---|
| -a | 添加默認安全上下文配置。 |
| -d | 刪除指定的默認安全上下文。 |
| -m | 修改指定的默認安全上下文。 |
| -t | 設定默認安全上下文的類型 |
【例 1】查詢默認安全上下文。
[root@localhost ~]# semanage fcontext -l
#查詢所有的默認安全上下文
…省略部分輸出…
/var/www(/.*)? all files
system_u:object_r:httpd_sys_content_t:s0
…省略部分輸出…
#能夠看到/var/www/目錄下所有內容的默認安全上下文都是httpd_sys_content_t
所以,一旦對 /var/www/ 目錄下文件的安全上下文進行了修改,就可以使用 restorecon 命令進行恢復,因為默認安全上下文已經明確定義了。
【例 2】修改默認安全上下文。
那么,可以修改目錄的默認安全上下文嗎?當然可以,舉個例子:
[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/目錄了
這時我們可以直接設置 /www/ 目錄的安全上下文類型為 httpd_sys_content_t,但是為了以后管理方便,我打算修改 /www/ 目錄的默認安全上下文類型。先查詢一下 /www/ 目錄的默認安全上下文類型,命令如下:
[root@localhost ~]# semanage fcontext -l | grep "/www"
#查詢/www/目錄的默認安全上下文
查詢出了一堆結果,但是并沒有 /www/ 目錄的默認安全上下文,因為這個目錄是手工建立的,并不是系統(tǒng)默認目錄,所以并沒有默認安全上下文,需要我們手工設定。命令如下:
[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/目錄的默認安全上下文出現(xiàn)了
這時已經設定好了 /www/ 目錄的默認安全上下文。
[root@localhost ~]# ls -Zd /www/
drwxr-xr-x.root root unconfined_u:object_r:default_t:s0 /www/
#但是查詢發(fā)現(xiàn)/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/目錄的默認安全上下文,發(fā)現(xiàn)類型已經被修改為httpd_sys_content_t
默認安全上下文的設定就這么簡單。
網站標題:SELinux默認安全上下文的查詢和修改(semanage命令)
URL標題:http://m.fisionsoft.com.cn/article/dhghihd.html


咨詢
建站咨詢
