Для нового отдела я создал новую точку монтирования / dept / dev, и сейчас здесь 2 директории: samba и svn, поэтому у нас есть:
unconfined_u:object_r:samba_share_t:s0 /dept/dev/samba/*
unconfined_u:object_r:svnserve_content_t:s0 /dept/dev/svn/*
(/ dept и / dept / dev также являются "samba_share_t", поскольку он был создан первым)
samba работает нормально, svn - нет:
AVC avc: denied { search } for pid=7126 comm="svnserve" name="/" dev="sdb1" ino=512 scontext=system_u:system_r:svnserve_t:s0 tcontext=system_u:object_r:samba_share_t:s0 tclass=dir permissive=0
(Я думаю, что «name» в приведенном выше списке - это каталог, который он пытается найти?)
Кажется, что, поскольку верхний каталог - samba_share_t, каталог ниже не может быть svnserve_content_t? Если это правильно, как я могу это сделать? Мне нужно сделать / dept и / dept / dev public_t?
Вам нужно сообщить об этом SELinux /dept/svn/*
должно быть svnserve_content_t
. Вы можете сделать это, добавив подходящее регулярное выражение ...
это
semanage fcontext -a -t svnserve_content_t "/dept/svn(/.*)?"
restorecon -rv /dept/svn
должен делать то, что хочешь.