2010-03-26 74 views
1

如何使用SELinux檢查進程名稱對文件的訪問?SElinux完整性檢查

例如,我們有兩個過程:

  • /usr/bin/foo1
  • /usr/bin/foo2

他們在帳戶的用戶名userA運行,並試圖打開修改文件:

  • /home/userA/test.txt

我想如果foo1試圖打開文件 - 沒關係。但是,如果foo2試圖打開 此文件 - 我在/var/log有關於此的消息。

問題是兩個進程都具有相同的用戶標識。我不能通過用戶名使用RBAC。

回答

2

您必須同時使用自定義域類型foo1foo2以使用SELinux策略運行。這將需要:

  1. 創建二進制文件類型(例如foo1_exec_tfoo2_exec_t
  2. 創建的處理類型(例如foo1_tfoo2_t
  3. 指定當用戶類型(可能unconfined_t)執行foo1_exec_t ,它轉換到foo1_t和類似的foo2

然後,您需要創建一個自定義類型爲test.txt(例如一旦你完成了這個任務,你可以編寫你喜歡的任何策略(包括你正在尋找的特定訪問的auditallow規則)。問題在於,通過創建自定義類型,您必須爲它們指定所有訪問權限。

如果你不想做任何訪問控制,而只是記錄什麼時候發生的事情,審計子系統是一個更好的選擇,但我不知道你可以做到這一點。