Я специалист по Ubuntu / Debian, но у меня возникли проблемы с установкой Ubuntu в системе softraid / fakeraid, поэтому я выбрал CentOS 5.6.
Я также работаю в небольшой фирме по веб-разработке, где нам нужно предоставить общий доступ к файлам html / httpd нашего тестового сервера через samba / smb, но также разрешить Apache размещать их.
Так что мне интересно, могу ли я установить для наших файлов тип samba и httpd?
Что-то вроде,
/usr/sbin/semanage fcontext -a -t samba_share_t,httpd_sys_content_t "/var/www/html(/.*)?"
В противном случае мне придется перевести SELinux в разрешающий режим, чего я не хочу делать.
Я только что понял, что совершенно неправильно понял ваш вопрос :)
Если вы хотите разрешить Samba читать /var/www/html
, который httpd_sys_content_t
, у вас не должно быть проблем. Я не эксперт по самбе, но afaik samba работает в smbd_t
домен, так что все должно быть в порядке:
# sesearch -s smbd_t --allow | grep httpd_sys_content
allow smbd_t httpd_sys_content_t : file { ioctl read getattr lock };
allow smbd_t httpd_sys_content_t : file { ioctl read write create getattr setattr lock append unlink link rename };
allow smbd_t httpd_sys_content_t : file { ioctl read write create getattr setattr lock append unlink link rename };
allow smbd_t httpd_sys_content_t : dir { ioctl read getattr lock search };
allow smbd_t httpd_sys_content_t : dir { ioctl read write create getattr setattr lock unlink link rename add_name remove_name reparent search rmdir };
allow smbd_t httpd_sys_content_t : dir { ioctl read write create getattr setattr lock unlink link rename add_name remove_name reparent search rmdir };
Это говорит о том, что Samba разрешено читать httpd_sys_content_t
каталоги и файлы. В /var/www/html
дерево является httpd_sys_content_t
. Вы уже пробовали это?
SHARING FILES
If you want to share files with multiple domains (Apache, FTP, rsync,
Samba), you can set a file context of public_content_t and public_content_rw_t.
These context allow any of the above domains to read the
content. If you want a particular domain to write to the public_con‐
tent_rw_t domain, you must set the appropriate boolean.
allow_DOMAIN_anon_write. So for samba you would execute:
setsebool -P allow_smbd_anon_write=1
Например:
semanage fcontext -a -t public_content_rw_t '/var/www/html(/.*)?'
restorecon -R /var/www/html
setsebool -P allow_smbd_anon_write 1
И для httpd:
setsebool -P allow_httpd_anon_write=1