Permitindo vários tipos no campo type de um rótulo de pasta no SELinux

3

Sou um cara do Ubuntu / Debian, mas tive problemas para instalar o Ubuntu em um sistema softraid / fakeraid, então fui com o CentOS 5.6.

Eu também estou em uma pequena empresa de desenvolvimento web, onde precisamos compartilhar os arquivos html / httpd do nosso servidor de teste via samba / smb, mas também permitir que o apache os hospede.

Então, estou pensando se posso definir nossos arquivos para o tipo samba e httpd?

Algo como

/usr/sbin/semanage fcontext -a -t samba_share_t,httpd_sys_content_t "/var/www/html(/.*)?"

Ou então eu vou ter que transformar o SELinux em modo permissivo, o que não é algo que eu queira fazer.

    
por bafromca 31.05.2011 / 20:35

2 respostas

2

Acabei de perceber que interpretei mal sua pergunta:)

Se você quiser permitir que o Samba leia /var/www/html , que é httpd_sys_content_t , você não deve ter um problema. Eu não sou um especialista em Samba, mas o afaik samba é executado no domínio smbd_t , então você deve estar bem:

 # 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 }; 

Isso diz que o Samba pode ler httpd_sys_content_t diretórios e arquivos. A /var/www/html tree é httpd_sys_content_t . Você já tentou isso?

    
por 31.05.2011 / 21:45
1
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

Por exemplo:

semanage fcontext -a -t public_content_rw_t '/var/www/html(/.*)?'
restorecon -R /var/www/html
setsebool -P allow_smbd_anon_write 1

E para o httpd:

setsebool -P allow_httpd_anon_write=1

Veja: link

    
por 05.01.2012 / 02:45