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

SELinux安全上下文的修改和設置(chcon和restorecon命令)

安全上下文的修改是我們必須掌握的,其實也并不難,主要是通過兩個命令來實現的。

chcon 命令格式如下:

[root@localhost ~]# chcon [選項] 文件或目錄

選項:
  • -R: 遞歸,當前目錄和目錄下的所有子文件同時設置;
  • -t: 修改安全上下文的類型字段,最常用;
  • -u: 修改安全上下文的身份字段;
  • -r: 修改安全上下文的角色字段;

舉個例子:

[root@localhost ~]# echo'test page?。?!' >> /var/www/html/index.html
#建立一個網頁文件,并寫入“test page?。?!”

我們可以通過瀏覽器查看這個網頁,只需在瀏覽器的 URL 中輸入“http://ip”即可,如圖 1 所示。

圖 1 訪問 apache 測試頁

[root@localhost ~]# ls -Z /var/www/html/index.html
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/index.html
#這個網頁文件的模式類別是httpd_sys_content_t
[root@localhost ~]# seinfo -t I grep var_t
#查詢SELinun中所有的類型、發現有一個類型叫var_t
[root@localhost ~]# chcon -t var_t /var/www/html/index.html
#把網頁文件的類型修改為var_t類型
[root@localhost ~]# ls -Z /var/www/html/index.html
-rw-r--r--. toot root unconfined_u:object_r:var_t:s0 /var/www/html/index.html
#這個網頁的類型已經被修改了

我們把網頁文件的類型修改了,這樣 apache 進程的安全上下文一定不能匹配網頁的安全上下文,就會出現如圖 2 所示的情況。

圖 2 拒絕訪問
這時網頁就會提示權限拒絕,這里我們已經知道是安全上下文不匹配惹的禍!當然,我們可以通過 chcon 命令修改回來就可以修復。不過,我們還有一個命令 restorecon,這個命令的作用就是把文件的安全上下文恢復成默認的安全上下文。SElinux 的安全上下文設定非常完善,所以使用 restorecon 命令就可以修復安全上下文不匹配所引起的問題。

restorecon 命令格式如下:

[root@localhost ~] # restorecon [選項】 文件或目錄

選項:
  • -R:遞歸.當前目錄和目錄下所有的子文件同時恢復;
  • -V:把恢復過程顯示到屏幕上;

例如:

[root@1ocalhost ~]# restorecon -Rv /var/www/html/index.html
restorecon  reset   /var/www/html/index.html    context
unconfined_u:object_r:var_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
#這里已經提示了安全上下文從var_t恢復成了httpd_sys_content_t
[root@1ocalhost ~]# ls -Z /var/www/html/index.html
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/index.html
#查看一下,安全上下文已經恢復正常了.網頁的訪問也已經恢復正常了

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

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

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

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

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

相關文章

優秀教程

国产亚洲欧美日韩