SELinux bloqueando a listagem do diretório Samba

4

Estou executando o Samba em um servidor CentOS e estou com um problema em que ele me permite conectar-me ao servidor e ver um compartilhamento, mas mostra o compartilhamento como um diretório vazio. Eu acho esse comportamento estranho.

Aqui está a sub-rotina do meu smb.conf para o compartilhamento dado:

[seanm]
    path = /home/seanm
    writeable = yes
    valid users = seanm, root
    read only = No

Veja o que vejo no lado do servidor:

[seanm@server ~]$ ls -l
-rw-r--r-- 1 seanm seanm 40 Jan  4 13:45 pangram.txt 

E ainda:

[seanm@client ~]$ smbclient //server/seanm -U seanm -W WORKGROUP
Enter seanm's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.33-3.29.el5_5.1]
smb: \> ls
  .                                   D        0  Fri Jan  7 10:08:55 2011
  ..                                  D        0  Fri Jan  7 07:58:31 2011
            58994 blocks of size 262144. 50356 blocks available

Esse comportamento está presente em um cliente Windows e em um sistema cliente Linux. O comportamento está presente com o firewall ativado e desativado, portanto não é isso. Nem o / var / log / messages nem o / var / log / secure tem reclamações sobre o Samba. Se eu mkdir um diretório no compartilhamento, que aparece, bem como subdiretórios, mas arquivos ainda não aparecem.

Eu duvido que o SELinux seja um problema: apenas no caso, aqui estão as configurações relevantes.

[root@server ~]# getsebool -a | grep samba
    samba_domain_controller --> off
    samba_enable_home_dirs --> on
    samba_export_all_ro --> off
    samba_export_all_rw --> off
    samba_share_fusefs --> off
    samba_share_nfs --> off
    use_samba_home_dirs --> on
    virt_use_samba --> off

O que estou fazendo errado aqui e o que posso fazer para corrigir isso?

Edit: SELinux provavelmente é o problema, a julgar pelo fato de que o problema desaparece quando eu configuro o SELinux como "permissivo" ou problema setsebool -P samba_export_all_rw on - ambos inaceitáveis para ambientes de produção. Qual é o tipo de contexto que um diretório precisa ter para que os usuários do Samba realmente obtenham arquivos dele? Eu considero rolando suas próprias regras e / ou contexto para ser profundamente sub-ótimo.

    
por Brighid McDonnell 07.01.2011 / 19:43

2 respostas

3

O problema parece estar resolvido agora. era SELinux; o contexto para o diretório inicial não foi configurado corretamente.

[seanm@server /home]$ ls -alZ
    drwx------  larry stooges  system_u:object_r:home_root_t    larry
    drwx------  seanm seanm    system_u:object_r:home_root_t    seanm

O problema é exibido.

[seanm@server /home]$ chcon -hR system_u:object_r:user_home_dir_t /home/seanm
[seanm@server /home]$ restorecon -Rv /home/seanm
[seanm@server /home]$ ls -alZ
    drwx------  larry stooges  system_u:object_r:home_root_t        larry
    drwx------  seanm seanm    system_u:object_r:user_home_dir_t    seanm

O problema não é exibido para seanm, mas é exibido para larry.

Meu melhor palpite é que é algo com o Cobbler: 'larry' e 'seanm' foram criados durante o processo de instalação com o Cobbler, e percebo que system_u também não é um contexto apropriado para eles, já que não é o que usuários criados com useradd get:

[root@server /home]# useradd selinuxtest
[seanm@server /home]$ ls -alZ
    drwx------  larry       stooges     system_u:object_r:home_root_t        larry
    drwx------  seanm       seanm       system_u:object_r:user_home_dir_t    seanm
    drwx------  selinuxtest selinuxtest user_u:object_r:user_home_dir_t      setest

Acho que é hora de usar a documentação do Cobbler.

    
por 10.01.2011 / 20:14
0

Você tentou ....

browseable = yes
    
por 07.01.2011 / 20:49