Acesse o compartilhamento Samba no Windows 10 no VirtualBox

1

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

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

[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 tem um usuário local com o mesmo nome ("myuser", sem senha definida), compartilhamento de arquivos e impressoras habilitado, Microsoft Client habilitado, conjunto de grupos 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 quando uma tentativa de acessar esta pasta compartilhada, um alerta de erro aparece: Você não tem permissão para acessar ...

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

Mesmo a modificação das diretivas de segurança local no Windows não funcionou: https://superuser.com/a/916835/408191

Como posso corrigir esse problema estranho?

PAX
fonte
tentar configurá-lo para usar uma senha, eu tive problemas antes e definindo explicitamente uma senha ajudou
benscabbia
Eu apenas tentei sua dica (senha determinada para usuário unix, para usuário no banco de dados de usuário do Samba e para usuário do Windows). Ainda não funciona. :-(
PAX
Eu criei outra VM com o Windows 7. O mesmo problema. Estou assumindo que há algo errado nas configurações do Samba ou nas propriedades do diretório de compartilhamento?
PAX
Eu descobri que o compartilhamento funciona bem, dependendo da localização do diretório de compartilhamento. Por exemplo, /samba/examplesharefunciona bem. Mas eu quero que esta pasta esteja localizada em um diretório inicial do usuário, por exemplo:/home/myuser/exampleshare
PAX

Respostas:

0

Algumas distribuições Linux têm 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 samba.conf. Você também precisa definir o "Contexto de segurança" correto da pasta de compartilhamento.

A máscara de permissão a seguir e o contexto de segurança devem executar o truque:

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

Todas as condições que já são conhecidas de wikis diferentes 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 a mesma 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
PAX
fonte