selinux通俗教程1 快速了解context

2021-09-10 19:01:43 字數 1918 閱讀 1272

接觸過linux的人都聽說過selinux這個詞。從rhel6系統後,裝系統時預設就必須開啟selinux,但很多老手卻是建議裝完系統後關閉它,原因是它太麻煩了。selinux就是一把雙刃劍,雖然很安全,卻讓管理員自己都到處碰壁。這裡我盡量不用專業的術語讓有一定linux基礎的同學能夠使用selinux,而不是關閉selinux。

那selinux到底是什麼?

答: 首先,它不是防火牆。你可以把selinux看作是系統許可權與服務許可權的延伸。有linux基礎的同學就知道,作業系統有基本的讀,寫,執行許可權,服務也會控制你是否可以訪問服務的資源。selinux就是在此基礎上擴充套件了更多的許可權。學過系統許可權的同學都知道r,w,x,s,t這些許可權位,selinux在這些許可權位的基礎上增加了乙個概念:安全上下文(context)

我們以httpd這個通用的基礎服務為例來看看selinux的context是怎麼限制許可權的

1, 在一台開啟了selinux的linux伺服器上安裝httpd服務

2, 準備三個不同的檔案到httpd服務的家目錄

準備第乙個檔案

# echo "main page" > /var/www/html/index.html

準備第二個檔案

# cp /etc/passwd /var/www/html/

準備第三個檔案

# touch /root/123

# mv /root/123 /var/www/html/

注意這裡是cp

注意這裡是mv

3, 客戶端瀏覽器訪問這三個問題,會發現123這個檔案訪問時許可權拒絕,但另兩個問題沒問題

4, 我們來查詢原因,有點linux基礎的同學就會想到,一般許可權拒絕有兩種情況:系統許可權拒絕服務許可權拒絕

從上圖我們可以看到並不是系統許可權拒絕,服務我也是剛安裝直接啟動的,並沒有做任何的配置,所以肯定也不是 服務許可權拒絕。那麼現在我們就要看看selinux了

5,通過檢視selinux安全上下文,我們發現了問題

6, 解決問題

總結: 我這裡不需要大家去記憶有哪些type,每一種type裡包含哪些許可權。只需要大家能夠去理解type就代表了一組許可權的集合,能夠通過比較法去解決實際的問題即可,這才是學習selinux的快速有效的方法。

ps: 問題解決了後,回過來提乙個問題: 為什麼123檔案的context安全上下文就和另兩個不一樣呢?

理解了上面的原理後,大家可以試試換httpd的家目錄試試,會出現一樣的問題。只要將新的家目錄的type改為與/var/www/html/目錄的type一致就可以了。

Thrust快速入門教程(三) 演算法 1

thrust提供了豐富的常用並行演算法。這演算法的功能與stl中的非常相似,於是我們使用了相同的名稱 例如thrust sort 與std sort 所有的thrust演算法均提供了主機端和裝置端。特別指出,當轉入主機端迭代器時,將會排程主機端方法,相似的,當使用裝置端迭代器時將使用裝置端實現。tr...

Gazebo系列教程 快速開始 1 一些介紹

目錄 一 執行gazebo 二 gazeb元件 1.world files 2.model files 3.environment variables 三 gazebo 架構 1.gazebo master 2.通訊庫 communication library 3.物理庫 physics libr...

yii快速入門教程1 絕對適合初學者

基本概念 一 入口檔案 入口檔案內容 一般格式如下 yii dirname file framework yii.php yii框架位置 config dirname file protected config main.php 當前應用程式的主配置檔案位置 部署正式環境時,去掉下面這行 defin...