Я продолжаю получать 'Operation not supported'
сообщение при попытке обновить тип контекста безопасности моего монтирования cifs. Я использую logrotate для отправки журналов с моего сервера в сетевое расположение, но контекст скрипта, который выполняется при монтировании cifs, является '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. Проверяя мои журналы /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.
Разбор сообщения об отказе AVC с помощью audit2allow
, Я получил:
$ 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 неправильно помечено, поскольку политика позволяет logrotate
читать из cifs_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 } ;