Selinux

如何將 SELinux mypol.te 文件轉換為腳本的 semanage 命令

  • November 14, 2012

為 MySQL 日誌設置了一個特殊的日誌目錄。這需要我執行命令

grep mysqld /var/log/audit/audit.log | audit2allow -M mypol

多次授權MySQL在MySQL日誌目錄中搜尋、打開、寫入等。

最終結果是一個mypol.te如下所示的文件:

module mypol 1.0;

require {
   type mysqld_log_t;
   type mysqld_t;
   class dir { write search read remove_name open add_name };
}

#============= mysqld_t ==============
allow mysqld_t mysqld_log_t:dir open;
#!!!! This avc is allowed in the current policy

allow mysqld_t mysqld_log_t:dir { write remove_name search read add_name };

但是,我想semanage在腳本中使用該命令在將來的建構中自動執行此操作。

想知道如何將上述mypol.te內容轉換為一組semanage命令?

好的 - 這不是正確的目標,但您可以通過建構 RPM 來實現您的目標。由於您可以編寫 shell 腳本,因此您不會遇到 RPM 問題。

您的目標是安裝 mySQL 並執行一些安裝後任務,例如添加使用者和添加 SELinux 策略。

我將嘗試概述通用收據。您可以在此處找到有關建構 rpm 的更好概述。

  1. 從mysql-sources的鏡像中獲取您的 mySQL 風格- 選擇 src.rpm 版本,下載它。
  2. 安裝該 src.rpm - 這將為您提供一個 SPEC 文件開始(它還將安裝 mySQL 的原始碼 - 準備編譯)
  3. 將您的 SEPolicy 文件包含到原始碼部分
  4. 在 %configure 部分中,您可以設置特定的配置選項 - 就像您在
  5. 修改 %build 部分,以便在那裡創建“你的”目錄,同時編譯你的 SEPolicy
  6. 在 %post-section 中安裝所需的使用者/組 - 不要忘記可能​​已經安裝這些的情況 - 在 %post-section 中啟動已編譯的 SELinux-policy
  7. 在 %install - 部分中包含已建構的模組,以及“您的”特殊目錄

一旦你完成了你的第一個 RPM - 下一個 RPM 就很容易了。但也許你應該把它作為一個問題。我在 UL 上沒有找到一個好的。

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