FYI, eu recebi ajuda da Red Hat ... o problema era que o SELinux restringia as permissões. Eu não preciso do controle oferecido pelo SELinux, então eu o desativei editando / etc / selinux / config e reiniciando.
Estou tentando configurar um servidor samba para compartilhar dados entre clientes via cifs. Como teste, montei o compartilhamento de samba na mesma máquina e tentei acessar o conteúdo do diretório. O comando mount foi:
mount -t cifs -o username=sthomaso,workgroup=WORKGROUP //server/scratch /mnt/server/scratch
... que funcionou bem depois de digitar a senha. Embora eu possa cd /mnt/server/scratch
, quando tento listar o conteúdo do diretório com ls
, recebo o erro ls: reading directory .: Permission denied
.
No servidor, meu /etc/samba/smb.conf
é:
[global]
security = user
workgroup = WORKGROUP
[homes]
writeable = yes
[scratch]
path = /var/scratch
valid users = @feausers
writeable = yes
O usuário "sthomaso" foi adicionado ao tdbsam com o comando:
pdbedit -a -u sthomaso
O usuário "sthomaso" está no grupo "feausers", verificado com o comando "groups sthomaso".
/bin/ls -lF /var | grep scratch
mostra:
drwxrwx--T. 2 root feausers 4096 Jun 14 14:40 scratch/
/var/log/samba/log.smbd
contém a validação de uma conexão bem-sucedida na linha:
<snip> smbd/service.c:1070(make_connection_snum)
<snip> connect to service scratch initially as user sthomaso (uid=500, gid=501) (pid 99999)
Parece que estou montando o compartilhamento com sucesso, mas por que não consigo ler o diretório e acessar os arquivos?
FYI, eu recebi ajuda da Red Hat ... o problema era que o SELinux restringia as permissões. Eu não preciso do controle oferecido pelo SELinux, então eu o desativei editando / etc / selinux / config e reiniciando.
A resposta mais apropriada para este problema é indicada na parte superior do arquivo /etc/samba/smb.conf.example
:
Use the samba_export_all_ro or samba_export_all_rw Boolean to share system directories. To share such directories and only allow read-only permissions:
setsebool -P samba_export_all_ro on
To share such directories and allow read and write permissions:
setsebool -P samba_export_all_rw on
Além disso, se você olhar para o log setroubleshoot gerado por auditd, você terá várias sugestões sobre como potencialmente corrigir seu problema com um nível de confiança relativo de 1 a 100.
Para visualizar esses registros e sugestões, execute: sealert -a /var/log/audit/audit.log
Em suma, para corrigir este problema, execute o comando: setsebool -P samba_export_all_rw on
Em seguida, reinicie o serviço.
Editar:
Além disso, assegure-se de aplicar o contexto selinux apropriado ao seu diretório de compartilhamento de samba usando o seguinte comando:
semanage fcontext -a -t samba_share_t "/PATH_TO_SHARE(/.*)?"
Tags directory permissions samba