Fedora

SELinux 干擾 sss_cache

  • December 9, 2018

系統:

  • HP Pavilion Power 筆記型電腦 15-cb0xx
  • 啟用集成顯卡的 Intel i7-7700HQ(無法在 BIOS 中關閉)
  • 軟呢帽 28
  • NVIDIA GTX 1050(移動)

我使用dnfdragoraGUI 更新了大約 119 個包(我有一段時間忘記更新了:/)。在某個時候,我收到了來自 SELinux 的通知:

SELinux is preventing sss_cache from write access on the directory /var/lib/sss/db/

我探勘/var/log/messages/var/log/audit/audit.log發現了與 SELinux 告訴我的相同的東西。

在這一切都結束之後,我注意到事情進展得有點慢,所以我重新啟動了。重啟速度較慢,在載入 Fedora 徽標、載入登錄 GUI 和載入桌面時尤其明顯。額外的重新啟動沒有解決任何問題。

通過查看手冊頁,sss_cache我了解了它的功能以及它與系統安全服務守護程序 (SSSD) 一起使用的要點。

這就是 SELinux 對話框告訴我的內容: 在此處輸入圖像描述

我知道這將通知維護人員潛在的錯誤,並且策略更改將阻止 SELinux 將來在 sss_cache 上發出警報。除了它為 Linux 系統提供添加/可配置的安全附加功能外,我對 SELinux 一無所知。但是,我仍然不明白為什麼會發生這種情況,或者是否有其他可能更好的解決方案。我也不清楚這是否能解決我注意到的減速問題。

誰能告訴我:

  1. 為什麼會發生這種情況?我可以猜想 SELinux 認為與 SSSD 相關的任何東西都非常重要,但為什麼它不知道用於 SSSD 的實用程序?
  2. 我應該只報告錯誤並創建本地策略模組,還是其他?
  3. 我應該撤消導致這一切的事務並以較小的組更新包嗎?它甚至會解決問題嗎?
  4. 這會導致我上面提到的減速問題嗎?我從使用虛擬機(特別是在 VirtualBox 中擴展儲存空間)中了解到,留下舊條目/etc/fstab會減慢啟動速度,因為系統正在尋找不存在的東西。這裡有類似的事情嗎?

我不願意在沒有額外資訊的情況下只做螢幕上所說的話。我不想在沒有意識到的情況下將創可貼貼在彈坑上。

(應要求提供的附加資訊):我應該說:/var/lib/sss/db/是一個目錄。

ls -Z /var/lib/sss/輸出db/system_u:object_r:sssd_var_lib_t:s0

摘自audit.log(包括夾在兩個相關行之間的可能不相關的行):

type=AVC msg=audit(1543865969.237:241): avc:  denied  { write } for  pid=18065 comm="sss_cache" name="db" dev="sdb2" ino=787765 scontext=system_u:system_r:groupadd_t:s0 tcontext=system_u:object_r:sssd_var_lib_t:s0 tclass=dir permissive=0
type=GRP_MGMT msg=audit(1543865969.239:242): pid=18062 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:groupadd_t:s0 msg='op=modify-group acct="rpcuser" exe="/usr/sbin/groupmod" hostname=? addr=? terminal=? res=success'
type=AVC msg=audit(1543865969.264:243): avc:  denied  { write } for  pid=18067 comm="sss_cache" name="db" dev="sdb2" ino=787765 scontext=system_u:system_r:groupadd_t:s0 tcontext=system_u:object_r:sssd_var_lib_t:s0 tclass=dir permissive=0

ls -Z /usr/sbin/sss_cache(通過 找到的位置)的輸出which sss_cache

system_u:object_r:bin_t:s0

原來“詳細資訊”視窗有很多資訊: 在此處輸入圖像描述

看起來像是Fedora 的 SELinux 政策中的一個錯誤

在修復發布之前,您可以使用audit2allow生成的策略或錯誤報告中的策略來允許訪問。

引用自:https://unix.stackexchange.com/questions/485799