Centos7

無法啟用自定義 SELinux 規則

  • September 1, 2015

logrotate 無法在 CentOS 7 上為我們的應用程序旋轉日誌文件。這似乎是因為此 AVC 錯誤:

type=AVC msg=audit(1441112694.305:19502): avc:  denied  { write } for  pid=9146 comm="logrotate" name="autuitive.log" dev="xvda1" ino=26262388 scontext=system_u:system_r:logrotate_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:usr_t:s0 tclass=file

我將錯誤傳遞給 audit2allow 實用程序以創建允許它的規則,但是當我嘗試啟用該規則時,出現以下錯誤:

[root@app1 ~]# semodule -i logrotate.pp
libsepol.print_missing_requirements: logrotate's global requirements were not met: type/attribute logrotate_t (No such file or directory).
libsemanage.semanage_link_sandbox: Link packages failed (No such file or directory).
semodule:  Failed!

這是生成的規則本身:

[root@app1 ~]# cat logrotate.te 

module logrotate 1.0;

require {
   type logrotate_t;
   type usr_t;
   class file write;
}

#============= logrotate_t ==============
allow logrotate_t usr_t:file write;

我認為這是因為系統上已經有一個 logrotate.pp 文件(/etc/selinux/targeted/modules/active/modules/logrotate.pp)。

您應該使用不同的名稱創建本地策略,例如

audit2allow -M MY_logrotate <somefilewithmessages

然後使用

semodule -i MY_logrotate.pp 

安裝它。是的,這不是最好的錯誤消息。

引用自:https://serverfault.com/questions/718309