接觸過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...