Como criar um compartilhamento Samba que pode ser gravado no Windows sem permissões 777?

20

Eu tenho um caminho em uma máquina Linux (Debian 8) que eu quero compartilhar com o Samba 4 para computadores Windows (Win7 e 8 em um domínio). No meu smb.conf , fiz o seguinte:

[myshare]
path = /path/to/share
writeable = yes
browseable = yes
guest ok = yes
public = yes

Eu tenho acesso de leitura perfeito do Windows. Mas, para ter acesso de gravação, preciso fazer chmod -R 777 /path/to/share para poder gravar nele a partir do Windows.

O que eu quero é o acesso de gravação do Windows depois de fornecer as credenciais do Linux do proprietário do Linux de /path/to/share .

Eu já tentei:

[myshare]
path = /path/to/share
writeable = yes
browseable = yes

Então o Windows pede credenciais, mas não importa o que eu digite, é sempre negado.

Qual é a maneira correta de obter acesso de gravação aos compartilhamentos do Samba a partir de um computador de domínio do Windows sem conceder o 777?

    
por Foo Bar 29.05.2015 / 14:42

2 respostas

34

Eu recomendo criar um usuário dedicado para esse compartilhamento e especificá-lo em force user .

Crie um usuário ( shareuser , por exemplo) e defina o proprietário de tudo na pasta de compartilhamento para esse usuário:

adduser --system shareuser
chown -R shareuser /path/to/share

Em seguida, adicione force user e configurações de máscara de permissão em smb.conf :

[myshare]
path = /path/to/share
writeable = yes
browseable = yes
public = yes
create mask = 0644
directory mask = 0755
force user = shareuser

Observe que guest ok é um sinônimo para public .

    
por 29.05.2015 / 14:56
0

Nas configurações de compartilhamento em smb.conf , você precisará especificar os nomes dos usuários e / ou grupos que podem gravar no compartilhamento usando uma linha write list = ... .

Exemplo:

[myshare]
...
write list = my_linux_username

Em seguida, você precisará usar o comando smbpasswd para configurar uma senha para autenticar my_linux_username para o Samba:

sudo smbpasswd -a my_linux_username

Esta etapa é necessária porque as senhas padrão do sistema em /etc/shadow são criptografadas em algoritmos incompatíveis com os algoritmos de hash de senha usados no protocolo SMB. Quando um cliente envia um pacote de autenticação SMB, ele inclui uma senha com hash. Ele só pode ser comparado a outro hash de senha que usa o mesmo algoritmo.

(Instruções muito antigas do milênio anterior podem recomendar a desabilitação da criptografia de senhas no Samba e o uso de certos hacks de registro para permitir que o Windows emita senhas não criptografadas para a rede. Esse conselho é obsoleto : Os hacks de registro podem não funcionar mais nas versões atuais do Windows e permitir que qualquer pessoa que monitore seu tráfego de rede possa capturar sua senha de modo trivial.

Há mais uma coisa que você pode fazer do lado do cliente. Quando o sistema do cliente Windows está associado a um domínio do Active Directory e você está conectado a uma conta do AD, ele preenche automaticamente todos os nomes de usuário não qualificados com o nome do domínio do AD do usuário, ou seja, você estará autenticando como AD_DOMAIN\your_username , não apenas your_username .

Se você efetuou login com uma conta local (ou seu sistema cliente não ingressou em um domínio AD), o Windows pode prefixar automaticamente o nome de usuário com o hostname , a menos que você especifique outro nome de domínio.

Para fazer login com êxito em um servidor Samba independente de um cliente Windows autônomo, talvez seja necessário especificar seu nome de usuário como SAMBA_SERVER_HOSTNAME\your_username .

Caso contrário, o Samba verá o nome de usuário como WINDOWS_CLIENT_HOSTNAME\your_username , concluirá que não há como verificar se algum usuário pertence ao domínio denominado WINDOWS_CLIENT_HOSTNAME e rejeitará o login.

(Versões mais recentes do Samba podem ter uma verificação interna para essa situação específica, e elas podem permitir o acesso mesmo assim. Mas isso é basicamente como a autenticação SMB funciona "sob o capô", e se você precisa lidar com versões antigas do Samba, pode ser útil ainda.)

    
por 22.09.2018 / 10:57