首頁 > linux教程 > SELinux管理 閱讀:0更新時間:2020-03-28 01:08:10

SELinux默認安全上下文的查詢和修改(semanage命令)

前面講到,restorecon 命令可以將文件或目錄恢復成默認的安全上下文,這就說明每個文件和目錄都有自己的默認安全上下文,事實也是如此,為了管理的便捷,系統給所有的系統默認文件和目錄都定義了默認的安全上下文。

那么,默認安全上下文該如何查詢和修改呢?這就要使用 semanage 命令了。該命令的基本格式如下:

[root@localhost ~]# semanage [login|user|port|interface|fcontext|translation] -l
[root@localhost ~]# semanage fcontext [選項] [-first]  file_spec

其中,fcontext 主要用于安全上下文方面,-l 是查詢的意思。除此之外,此命令常用的一些選項及含義,如表 1 所示。

表 1 semanage命令常用選項及含義
選項 含義
-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/ 目錄的默認安全上下文,因為這個目錄是手工建立的,并不是系統默認目錄,所以并沒有默認安全上下文,需要我們手工設定。命令如下:

[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/目錄的默認安全上下文出現了

這時已經設定好了 /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

默認安全上下文的設定就這么簡單。

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩