SELinux:无法用cifs_t上下文chcon脚本

尝试更新我的cifs安装的安全上下文types时,我不断收到'Operation not supported'消息。 我使用logrotate将我的服务器上的日志推送到networking位置,但是在cifs mount上执行的脚本的上下文是'system_u:object_r:cifs_t:s0'

这里是我的CIFS文件夹的装载标志:

 (rw,relatime,vers=1.0,cache=strict,username=cifsuser,domain=.,uid=1000,forceuid,gid=1000,forcegid,addr=10.1.3.97,file_mode=0755,dir_mode=0755,nounix,rsize=61440,wsize=16580,actimeo=1) 

我有我的logrotate从cron.hourly运行,每次它试图将文件移动到这个安装我会得到一个selinux政策错误。 我试图运行以下来解决:

 sealert -l b9263b3e-d2f9-4b33-ba48-af9b3b7695fd grep logrotate /var/log/audit/audit.log | audit2allow -M mypol semodule -i mypol.pp 

但是我仍然有问题,并且不再给我/ var / log / messages中的sealert错误。 检查我的/var/log/audit/audit.log日志我看到这个:

 type=SYSCALL msg=audit(1474114505.460:25005): arch=c000003e syscall=21 success=no exit=-13 a0=10f33a0 a1=4 a2=7ffd34025160 a3=7ffd34025080 items=0 ppid=16240 pid=16241 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=2773 comm="sh" exe="/usr/bin/bash" subj=system_u:system_r:logrotate_t:s0-s0:c0.c1023 key=(null) type=AVC msg=audit(1474114506.695:25006): avc: denied { read } for pid=16386 comm="sh" name="archive_logs.sh" dev="cifs" ino=60235645016091360 scontext=system_u:system_r:logrotate_t:s0-s0:c0.c1023 tcontext=system_u:object_r:cifs_t:s0 tclass=file 

任何帮助将不胜感激。

谢谢

考虑到它的缺陷,我扩展了这个策略。 如果尚不存在,请安装RPM selinux-devel ,然后将此内容粘贴到名为mylogrotate.te的文件中。

 policy_module(mylogrotate, 1.0.0) require { type logrotate_t; type cifs_t; } gen_tunable(logrotate_use_cifs, false) tunable_policy(`logrotate_use_cifs',` fs_read_cifs_files(logrotate_t) ') 

之后,执行以下操作:

 $ make -f /usr/share/selinux/devel/Makefile load $ semanage boolean --modify --off logrotate_use_cifs 

这应该允许策略读取cifs文件。

audit2allowparsingAVC拒绝消息,得到:

 $ echo 'type=SYSCALL msg=audit(1474114505.460:25005): arch=c000003e syscall=21 success=no exit=-13 a0=10f33a0 a1=4 a2=7ffd34025160 a3=7ffd34025080 items=0 ppid=16240 pid=16241 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=2773 comm="sh" exe="/usr/bin/bash" subj=system_u:system_r:logrotate_t:s0-s0:c0.c1023 key=(null) \ type=AVC msg=audit(1474114506.695:25006): avc: denied { read } for pid=16386 comm="sh" name="archive_logs.sh" dev="cifs" ino=60235645016091360 scontext=system_u:system_r:logrotate_t:s0-s0:c0.c1023 tcontext=system_u:object_r:cifs_t:s0 tclass=file' \ | audit2allow #============= logrotate_t ============== allow logrotate_t cifs_t:file read; 

我的猜测是CIFS装载没有正确标记,因为策略允许logrotatecifs_t标签文件读取,如sesearch所示:

 $ sesearch -s logrotate_t -t cifs_t -p read --allow -c dir Found 1 semantic av rules: allow logrotate_t cifs_t : dir { ioctl read getattr lock search open } ;