Acesse o compartilhamento Samba do Windows 10 no VirtualBox

Acesse o compartilhamento Samba do Windows 10 no VirtualBox

Li muitas perguntas de usuários e blogs sobre essa preocupação, mas nada resolveu meu problema.

Eu tenho um host Linux CENTOS com convidado do Windows 10 instalado no VirtualBox. No Linux, existe um usuário chamado "myuser" que compartilha um diretório (777) e está registrado no banco de dados de usuários do Samba. Este usuário não tem restrição de senha. Fica smb.confassim:

[global]
workgroup = WORKSPACE_SHARE
security = user
map to guest = bad user

[public]
path = /home/myuser/public
public = yes
writeable = yes
comment = smb share
printable = no
guest ok = yes

O Windows possui um usuário local com o mesmo nome ("meuusuário", sem senha definida), compartilhamento de arquivos e impressoras habilitado, cliente Microsoft habilitado, conjunto de grupo de trabalho que corresponde ao grupo de trabalho Samba e usa uma rede privada.

No explorer posso ver o host Linux que, de fato, contém a pasta compartilhada ("pública"). Mas ao tentar acessar esta pasta compartilhada, aparece um alerta de erro: Você não tem permissões para acessar...

Na internet li coisas como "O Windows 10 usa SMBv3, mas o Samba ainda não oferece suporte" e como desligar o SMBv3 - mas não ajudou.

Mesmo a modificação das políticas de segurança locais no Windows não funcionou:https://superuser.com/a/916835/408191

Como posso corrigir esse problema estranho?

Responder1

Algumas distribuições Linux possuem a chamada implementação SELinux em seu kernel. Ele significa"Linux com segurança aprimorada"e, além de outras coisas, restringe os compartilhamentos do Samba. Se você deseja criar uma pasta de compartilhamento, não basta especificar permissões de acesso convenientes e uma definição no formato samba.conf. Você também precisa definir o "Contexto de segurança" correto da pasta de compartilhamento.

Seguir a máscara de permissão e o contexto de segurança deve resolver o problema:

chmod -R 770 yoursharefolder
chcon -R -t samba_share_t yoursharefolder

Todas as condições que já são conhecidas de diferentes wikis também devem ser respeitadas:

  • O usuário Unix como proprietário do compartilhamento deve ser adicionado ao banco de dados do usuário Samba:smbpasswd -a youruser
  • Sua máquina Windows deve ter um usuário com o mesmo nome e senha definidos no banco de dados Samba
  • Você samba.confpode ficar assim:

samba.conf(todas as partes maiúsculas devem ser personalizadas para o seu ambiente específico):

[global]
workgroup = SAME_WORKGROUP_AS_CONFIGURED_IN_WINDOWS
server string = Samba Server %v
netbios name = HOST_NAME_OF_YOUR_LINUX_MACHINE_ON_NETWORK
security = user
map to guest = bad user
dns proxy = no

[yourshare]
path = /PATH/TO/YOURSHARE
valid users = YOUR_WINDOWS_USER_NAME
browsable = yes
writeable = yes
guest ok = no
read only = no
directory mask = 0770
create mask = 0770

Editar:Observe que as alterações via chconnão são permanentes. Para fazer alterações permanentes no contexto de segurança, use o seguinte comando:

semanage fcontext -a -t samba_share_t /full/path/to/your/share/folder

...e para torná-lo eficaz:

restorecon -v /full/path/to/your/share/folder

informação relacionada