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.)