Samba (Português)

Samba é a suíte de programas padrão de interoperabilidade do Windows com Linux e Unix. Desde 1992, Samba vem provendo seguros, estáveis e rápidos serviços de arquivo e impressão para todos os clientes usando o protocolo SMB/CIFS, como todas as versões do DOS e Windows, OS/2, Linux e muitos outros.

Para compartilhar arquivos através do Samba, veja a seção #Servidor; para acessar arquivos compartilhados através do Samba em outras máquinas, veja a seção #Cliente.

Servidor

Instalação

Instale o pacote samba.

Samba é configurado pelo arquivo de configuração /etc/samba/smb.conf, o qual é extensivamente documentado em smb.conf(5).

Pelo fato do pacote samba não prover este arquivo, um deverá ser criado antes de iniciar o serviço smb.service.

Um exemplo documentado smb.conf.default do repositório git do Samba pode ser usado para configurar /etc/samba/smb.conf.

Nota:
  • A configuração padrão ajusta log file para uma localização não gravável, o que irá causar erros - aplica-se uma das seguintes soluções:
    • Altere a localização do arquivo de log para um caminho gravável: log file = /var/log/samba/%m.log
    • Altere o log para uma solução de back-end sem arquivo: logging = syslog com syslog only = yes, ou use logging = systemd
  • Se necessário; o workgroup especificado na seção [global] precisa equivaler ao grupo de trabalho do Windows (por padrão WORKGROUP).

Ativando e iniciando serviços

Para prover compartilhamento básico de arquivos via SMB, ative/inicie smb.service. Veja para mais detalhes.

Se você deseja tornar o seu servidor acessível via NetBIOS hostname, ajuste o nome desejado através da opção em e ative/inicie nmb.service. Veja para detalhes.

Nota: nmb.service não é requerido. Entretanto, é necessário para acessar servidores Samba pelo hostname (por exemplo, smb://hostname/) para alguns hosts. Se sua rede é composta somente por máquinas executando Windows 10 ou mais recente, considere instalar também um daemon WSD para que seu servidor apareça ao visualizar o componente "Rede".

Tornar a rede detectável

Instale o pacote , então ative/inicie para tornar o servidor samba detectável com Zeroconf. Isto deve funcionar para a maioria dos gerenciadores de arquivos não-Windws (como Finder do macOS, vários gerenciadores de arquivos baseados em interface gráfica do Linux e BSD etc.)

Se não estiver em execução, o servidor continuará acessível, apenas não detectável, isto é, não aparecerá nos gerenciadores de arquivos, mas você poderá conectar-se ao servidor diretamente pelo IP ou domínio.

O Windows Explorer depende do protocolo WS-Discovery; veja #Windows 1709 ou mais recente não mostra o servidor Samba na rede.

Configurar firewall

Se você estiver usando um firewall, não se esqueça de abrir as portas necessárias (normalmente 137-139 + 445). Para uma lista completa, veja uso de portas pelo Samba.

Regra UFW

Um perfil de aplicativo Ufw para SMB/CIFS é incluído por padrão com a instalação padrão do UFW em .

Permita ao Samba executar como root.

Caso tenha excluído o perfil, crie/edite e adicione o seguinte conteúdo:

[Samba]
title=LanManager-like file and printer server for Unix
description=The Samba software suite is a collection of programs that implements the SMB/CIFS protocol for unix systems, allowing you to serve files and printers to Windows, NT, OS/2 and DOS clients. This protocol is sometimes also referred to as the LanManager or NetBIOS protocol.
ports=137,138/udp|139,445/tcp

Em seguida, carregue o perfil no UFW executando como root.

Então finalmente dê permissão ao Samba executando como root.

Serviço firewalld

Para configurar firewalld para permitir Samba na zona home, execute:

# firewall-cmd --permanent --add-service={samba,samba-client,samba-dc} --zone=home

Os três serviços listados são:

--permanent garante que as mudanças continuem após o reinício do serviço .

Gerenciamento de usuários

A seguinte seção descreve como criar um banco de dados local (tdbsam) de usuários do Samba. Para autenticação de usuários e outros propósitos, Samba também pode ser vinculado a um domínio do Active Directory, pode servir como um controlador de domínio do Active Directory ou pode ser usado com um servidor LDAP.

Adicionando um usuário

Samba requer uma conta de usuário Linux - você poderá usar uma existente ou criar uma nova.

Embora o nome de usuário seja compartilhado com o sistema Linux, o Samba usa uma senha separada daquela das contas de usuário do Linux. Substitua com a conta de usuário Samba escolhida:

# smbpasswd -a samba_user

Dependendo da função do servidor, permissões de arquivo e atributos existentes podem precisar ser alterados para a conta de usuário do Samba.

Se você deseja que o novo usuário tenha permissão apenas para acessar remotamente os compartilhamentos do servidor de arquivos através do Samba, você pode restringir outras opções de login:

  • disabling shell -
  • disabling SSH logons - edit , change option

Veja também segurança para aumentar a segurança do seu sistema.

Listando usuários

Usuários do Samba podem ser listados usando o comando :

# pdbedit -L -v
Alterando senha do usuário

Para alterar uma senha do usuário, use smbpasswd:

# smbpasswd samba_user

Criando um compartilhamento anônimo

1. Crie um usuário Linux para o qual os usuários anônimos do Samba serão mapeados.

# useradd guest -s /bin/nologin

2. Adicione o seguinte ao /etc/samba/smb.conf:

Usuários anônimos serão agora mapeados ao usuário Linux guest e terão a capacidade de acessar quaisquer diretórios definidos em , o qual é configurado para ser no exemplo acima.

Certifique-se de que o usuário Linux guest possui as permissões apropriadas para acessar arquivos em .

Além disso, certifique-se de que os compartilhamentos foram definidos adequadamente de acordo com a seção Share Definitions de smb.conf.default.

Então, reinicie smb.service.

Ativar compartilhamentos de usuário

Nota: Este recurso é opcional. Pule esta seção caso você não necessite dela.

Compartilhamentos de usuário é um recurso que dá a usuários não-root a capacidade de adicionar, modificar e excluir suas próprias definições de compartilhamento. Veja .

  1. Crie um diretório para compartilhamentos de usuário:
  2. Crie um grupo de usuários:
  3. Altere o proprietário do diretório para e o grupo para :
    # chown root:sambashare /var/lib/samba/usershares
  4. Altere as permissões do diretório para que os usuários do grupo possam criar arquivos. Este comando também ajusta o sticky bit, o qual é importante para prevenir que usuários excluam compartilhamentos de outros usuários:

Ajuste os seguintes parâmetros no arquivo de configuração :

Adicione o usuário ao grupo sambashare. Substitua pelo nome de seu usuário:

# gpasswd sambashare -a your_username

Reinicie os serviços smb.service e nmb.service.

Faça logout e login novamente.

Se desejar compartilhar caminhos dentro de seu diretório home, você deve torná-lo acessível para o grupo others.

Na interface gráfica, você pode usar Thunar ou Dolphin - clique com o botão direito em qualquer diretório e compartilhe-o na rede.

Na linha de comando, use um dos seguintes comandos, substituindo o que está em itálico sharename, user, ... :

# net usershare add sharename abspath [comment] [user:{R|D|F}] [guest_ok={y|n}]
# net usershare delete sharename
# net usershare list wildcard-sharename
# net usershare info wildcard-sharename

Ajustar e forçar permissões

Permissões podem ser aplicadas para ambos servidor e compartilhamentos:

/etc/samba/smb.conf
[global]
  ;inherit owner = unix only ; Inherit ownership of the parent directory for new files and directories
  ;inherit permissions = yes ; Inherit permissions of the parent directory for new files and directories
  create mask = 0664
  directory mask = 2755
  force create mode = 0644
  force directory mode = 2755
  ...

[media]
  comment = Media share accessible by ''greg'' and ''pcusers''
  path = ''/path/to/media''
  valid users = ''greg @pcusers''
  force group = ''+pcusers''
  public = no
  writable = yes
  create mask = 0664
  directory mask = 2775
  force create mode = 0664
  force directory mode = 2775

[public]
  comment = Public share where ''archie'' has write access
  path = ''/path/to/public''
  public = yes
  read only = yes
  write list = ''archie''
  printable = no

[guests]
  comment = Allow all users to read/write
  path = ''/path/to/guests''
  public = yes
  only guest = yes
  writable = yes
  printable = no

Veja smb.conf(5) para uma visão geral de possíveis bandeiras de permissão e configurações.

Restringir protocolos para maior segurança

Acrescente e em /etc/samba/smb.conf para forçar o uso de um protocolo mínimo e máximo:

Veja em smb.conf(5) para uma visão geral de protocolos suportados.

Para compatibilidade com clientes e/ou servidores mais antigos, você pode precisar definir ou , mas observe que isto torna o seu sistema mais vulnerável a exploits no SMB1 incluindo ataques de ransonware.

Clientes usando mount.cifs podem necessitar que seja especificado o correto, por exemplo:

# mount -t cifs //SERVER/sharename /mnt/mountpoint -o username=username,password=password,iocharset=utf8,vers=3.1.1

Veja para mais informações.

Usar criptografia de transporte SMB nativa

A criptografia de transporte SMB nativa está disponível na versão SMB 3.0 ou mais recente. Os clientes que oferecem suporte a esse tipo de criptografia incluem Windows 8 e mais recente, Windows server 2012 e mais recente e smbclient do Samba 4.1 e mais recente.

Para usar a criptografia de transporte SMB nativa por padrão, defina o parâmetro server smb encrypt globalmente e/ou por compartilhamento. Valores possíveis são , (valor padrão), , ou :

Para configurar a criptografia no lado do cliente, use a opção .

Veja smb.conf(5) para maiores informações, especialmente os parágrafos Effects for SMB1 e Effects for SMB2.

Desativar compartilhamento de impressora

Por padrão, o Samba compartilha impressoras configuradas usando CUPS.

Se você não quiser que as impressoras sejam compartilhadas, use as seguintes configurações:

/etc/samba/smb.conf
[global]
  load printers = no
  printing = bsd
  printcap name = /dev/null
  disable spoolss = yes
  show add printer wizard = no

Bloquear certas extensões de arquivo em um compartilhamento do Samba

O Samba oferece uma opção para bloquear arquivos com determinados padrões, como extensões de arquivo. Esta opção pode ser usada para evitar a disseminação de vírus ou para dissuadir os usuários de desperdiçar espaço com determinados arquivos. Mais informações sobre esta opção podem ser encontradas em smb.conf(5).

Melhorar o desempenho

As configurações padrão devem ser suficientes para a maioria dos usuários. No entanto, definir 'socket options' corretamente poderá melhorar o desempenho, mas errar pode torná-lo mais lento. Teste o efeito antes de fazer grandes alterações.

Leia smb.conf(5) no manual antes de aplicar quaisquer opções listadas abaixo.

As seguintes configurações deverão ser acrescentadas à seção [global] de /etc/samba/smb.conf.

Definir deadtime é útil para impedir que os recursos de um servidor sejam esgotados por um grande número de conexões inativas:

deadtime = 30

O uso de sendfile pode tornar o uso mais eficiente das CPUs do sistema e fazer com que o Samba seja mais rápido:

use sendfile = yes

Definir um tamanho mínimo de receivefile permite gravações de cópia zero diretamente dos buffers de soquete de rede no cache de buffer do sistema de arquivos (se disponível). Pode melhorar o desempenho, mas o teste do usuário é recomendado:

min receivefile size = 16384

Aumentar o tamanho dos buffers de recebimento/envio e as bandeiras de otimização de soquete podem ser úteis para melhorar o rendimento. Recomenda-se testar cada bandeira separadamente, pois pode causar problemas em algumas redes:

socket options = IPTOS_LOWDELAY TCP_NODELAY IPTOS_THROUGHPUT SO_RCVBUF=131072 SO_SNDBUF=131072

Ativar acesso para dispositivos/clientes antigos

Últimas versões do Samba oferecem métodos de autenticação mais antigos e protocolos que continuam sendo usados por clientes antigos (câmeras de vigilância , etc). Estes dispositivos normalmente requerem que o servidor do Samba permita autenticação NTMLv1 e a versão do protocolo NT1, conhecida como CIFS. Para que estes dispositivos trabalhem com a última versão do Samba, você precisa adicionar estes dois parâmetros de configuração dentro da seção [global]:

server min protocol = NT1
ntlm auth = yes

O acesso anônimo/convidado a um comopartilhamento requer apenas o primeiro parâmetro. Se o dispositivo antigo irá acessar com usuário e senha, você precisará também adicionar a segunda linha.

Ativar busca Spotlight

Spotlight permite que os clientes suportados (por exemplo, MacOS Finder) para rapidamente procurar por arquivos compartilhados.

Instale e inicie/ative OpenSearch. Instale , configure os diretórios que deseja que sejam indexados em e inicie/ative para indexação periódica.

Edite como descrito na wiki do Samba para ativar Spotlight por compartilhamento, e reinicie smb.service para aplicar as alterações.

Cliente

Instale para uma interface de linha de comando ftp. Veja para os comandos comumente usados.

Para uma alternativa leve (sem suporte para listar ações públicas, etc.), instale que provê .

Dependendo do ambiente desktop, métodos de interface gráfica estarão disponíveis. Veja #Configuração do gerenciador de arquivos para uso com um gerenciador de arquivos.

Nota:

Listar compartilhamentos públicos

O seguinte comando lista compartilhamentos públicos em um servidor:

$ smbclient -L hostname -U%

Alternativamente, executar irá exibir um diagrama de árvore de todos os compartilhamentos. Ele usa consultas de transmissão e, portanto, não é aconselhável em uma rede com muitos computadores, mas pode ser útil para diagnosticar se você tiver o nome de compartilhamento correto. A opção () suprime a solicitação de senha.

Hostnames NetBIOS/WINS

Clientes Samba lidam com hostnames NetBIOS automaticamente por padrão (o comportamento é controlado pela opção em ). Outros programas (incluindo mount.cifs) tipicamente usam Name Service Switch, o qual não lida com NetBIOS por padrão.

O pacote fornece um controlador libnss para resolver hostnames NetBIOS. Para usa-lo, instale juntamente com o pacote samba (o qual fornece a daemon winbindd), inicie/ative e adicione wins à linha em :

Agora, durante a resolução de host (por exemplo, ao usar mount.cifs ou simplesmente ), winbindd irá resolver o nome do host enviando consultas usando Serviço de Nomes NetBIOS (NBNS, também conhecido como protocolo WINS).

Por padrão, ele envia uma consulta de transmissão para sua rede local. Caso tenha um servidor WINS, você poderá adicionar ao e reiniciar , então winbindd e outros clientes Samba irão enviar consultas unicast para o IP especificado.

Se desejar resolver sou nome de host local (especificado na opção em ), inicie/ative nmb.service, o qual lidará com as consultas recebidas.

Você pode testar a resolução WINS com . Por padrão, ela transmite consultas para sua rede local independentemente da opção wins server.

Observe que a resolução WINS exige tráfego de entrada oriundo da porta 137.

Desativar o suporte a NetBIOS/WINS

Quando não se usa resolução de nome de host NetBIOS/WINS, pode ser preferível desativar este protocolo:

Finalmente desative/pare .

Montagem manual

Monte o compartilhamento usando mount.cifs como type. Nem todas as opções listadas abaixo são necessárias ou desejáveis:

# mount --mkdir -t cifs //SERVER/sharename /mnt/mountpoint -o username=username,password=password,workgroup=workgroup,iocharset=utf8,uid=username,gid=group

As opções e correspondem ao local (por exemplo, cliente) usuário/grupo de usuários que terão acesso de leitura/gravação no caminho fornecido.

  • — O nome do servidor.
  • — O diretório compartilhado.
  • — O diretório local onde o compartilhamento será montado.
  • [-o options] — Veja para mais informações.

Armazenando senhas de compartilhamentos

Armazenar senhas em um arquivo legível por todos não é recomendado. Um método mais seguro é usar um arquivo de credenciais, por exemplo, dentro de :

Para o comando de montagem, substitua username=myuser,password=mypass por .

O arquivo de credencial deve ser explicitamente legível/gravável por root:

# chown root:root /etc/samba/credentials
# chmod 700 /etc/samba/credentials
# chmod 600 /etc/samba/credentials/share

Using NetworkManager and GIO/gvfs

NetworkManager pode ser configurado para executar um script quando ocorrerem alterações no status de rede do sistema. Este script usa o comando gio para que ele monte os compartilhamentos do Samba automaticamente, da mesma forma que seu gerenciador de arquivos faz, conforme explicado abaixo. O script também desmonta com segurança os compartilhamentos do Samba antes que a conexão de rede relevante seja desabilitada, ouvindo os eventos e . Torne o script executável executable após criá-lo.

Cria um link simbólico dentro de /etc/NetworkManager/dispatcher.d/pre-down para capturar os eventos :

# ln -s /etc/NetworkManager/dispatcher.d/30-samba.sh /etc/NetworkManager/dispatcher.d/pre-down.d/30-samba.sh

Como uma entrada de montagem

Este á um simples exemplo de uma entrada de montagem no fstab do tipo que requer autenticação:

Como unit do systemd

Crie um novo arquivo .mount dentro de , por exemplo . Veja para detalhes.

What= caminho para o compartilhamento

caminho para montar o compartilhamento
opções de montagem do compartilhamento

Para usar , inicie a unit e ative a mesma para que execute durante a inicialização do sistema.

Montagem automática

Para automaticamente montar um compartilhamento (quando acessado, como autofs), uma maneira é usar a seguinte unit de de montagem automática:

Desative/pare a unit e ative/inicie para montagem automática do compartilhamento quando o caminho de montagem estiver sendo acessado.

smbnetfs

Nota: smbnetfs precisa de uma configuração de servidor Samba intacta. Veja acima como fazer isso.

Primeiro, verifique se você consegue visualizar todos os compartilhamentos que você está interessado em montar:

$ smbtree -U remote_user

Se isso não funcionar, localize e modifique apropriadamente a seguinte linha em /etc/samba/smb.conf:

domain master = auto

Agora reinicie smb.service e nmb.service.

Se tudo funcionar como esperado, instale .

Então, adicione a seguinte linha ao :

user_allow_other

Agora copie o diretório para o seu diretório home:

$ cp -a /etc/smbnetfs/.smb ~

Então crie um link para smb.conf:

$ ln -sf /etc/samba/smb.conf ~/.smb/smb.conf

Caso um usuário e senha sejam solicitados para acessar alguma das pastas do compartilhamento, edite para incluir uma ou mais entradas, assim:

Também é possível adicionar entradas para hosts específicos a serem montados pelo smbnetfs, se necessário. Mais detalhes podem ser encontrados em .

Se estiver usando Dolphin ou GNOME Files, talvez queira adicionar o seguinte ao para evitar erros "disco cheio" já que smbnetfs por padrão relatará 0 bytes de espaço livre:

Ao terminar a configuração, será necessário executar

$ chmod 600 ~/.smb/smbnetfs.*

Caso contrário, smbnetfs reclamará de 'permissões de arquivo de configuração inseguras'.

Finalmente, para montar sua vizinhança de rede Samba em um diretório de sua escolha, chame

$ smbnetfs mount_point
Daemon

O pacote Arch Linux também mantém um modo de operação adicional em todo o sistema para smbnetfs. Para habilitá-lo, você precisa fazer as referidas modificações no diretório .

Então, você podera iniciar/ativar a daemon como o usual. O ponto de montagem de todo o sistema está em /mnt/smbnet/.

autofs

Veja Autofs para informações sobre montagem automática baseada em kernel para Linux.

GNOME Files, Nemo, Caja, Thunar e PCManFM

Para acessar compartilhamentos samba pelos gerenciadores de arquivos GNOME Files, Nemo, Caja, Thunar ou PCManFM, instale o pacote .

Pressione e insira na barra de locais para acessar seu compartilhamento.

O compartilhamento montado estará provavelmente em /run/user/seu_UID/gvfs ou no sistema de arquivos.

KDE

Aplicações do KDE (como Dolphin) tem a capacidade de navegar por compartilhamentos do Samba embutida. Use o caminho para navegar pelos arquivos. Caso deseje acessar arquivos por uma aplicação que não seja do KDE, você pode instalar .

Para usar uma interface gráfica nas Configurações do Sistema KDE, você precisará instalar o pacote .

Outros ambientes gráficos

Existem vários programas úteis, mas eles podem precisar ter pacotes criados para eles. Isso pode ser feito com o sistema de compilação do pacote Arch. Uma vantagem desses outros é que eles não exigem que um ambiente específico seja instalado para suportá-los e, portanto, trazem menos bagagem.

  • LinNeighborhood, RUmba, xffm-samba plugin para Xffm não estão disponíveis nos repositórios oficiais ou no AUR. Como eles não são oficialmente (nem mesmo extraoficialmente suportados), eles podem estar obsoletos e poderão sequer funcionar.

Dicas e truques

Descobrindo compartilhamentos de rede

Se nada for conhecido sobre outros sistemas na rede local e ferramentas automatizadas como smbnetfs não estiverem disponíveis, você poderá investigar manualmente os compartilhamentos do Samba.

Primeiro, instale os pacotes e .

Use nmap para varrer sua rede local para encontrar sistemas com a porta TCP 445 aberta, que é a porta usada pelo protocolo SMB. Observe que talvez seja necessário usar -Pn ou definir um tipo de varredura ping personalizada (por exemplo, ) porque sistemas Windows são geralmente protegidos por firewall.

O primeiro resultado é o outro sistema; o segundo é o cliente de onde esta verificação foi realizada.

Agora você pode se conectar a esses endereços IP diretamente, mas se quiser usar nomes de host NetBIOS, você pode usar para verificar os nomes NetBIOS. Observe que isso não funcionará se o NetBIOS estiver desabilitado no servidor.

Independentemente da saída, obser em <20>, que corresponde ao host com serviços abertos.

Use para listar quais serviços são compartilhados nesses sistemas. Você pode usar o nome do host NetBIOS (PUTER neste exemplo) em vez do IP quando disponível. Se for solicitada uma senha, pressionar enter ainda deve exibir a lista:

Controle remoto de um computador Windows

Samba oferece uma coletânea de ferramentas para comunicação com Windows. Isso pode ser útil se o acesso a um computador Windows por meio da área de trabalho remota não for uma opção, como mostrado em alguns exemplos.

Enviar o comando shutdown com comentário:

$ net rpc shutdown -C "comment" -I IPADDRESS -U USERNAME%PASSWORD

Em vez disso, um desligamento forçado pode ser invocado alterando -C com comentário por um simples -f. Para um reinício, somente adicione -r, seguida de um -C ou -f.

Parar e reiniciar serviços:

$ net rpc service stop SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD

Para ver todos os possíveis comandos da gama net rpc:

$ net rpc

Solucionando problemas

Falha ao iniciar o servidor Samba SMB/CIFS

Possíveis soluções:

  • Verifique erros de sintaxe no arquivo smb.conf com .
  • Defina permissões corretas para e reinicie smb.service:
# chmod 0755 /var/cache/samba/msg

Problemas de permissão com SELinux

SELinux não permite que o samba acesse os diretórios pessoais do usuário por padrão, para resolver isso, execute:

# setsebool -P samba_enable_home_dirs 1

Similarmente, e fazem com que Samba seja capaz de ler ou "ler e gravar" todos os arquivos.

Problemas de permissão com AppArmor

Se estiver usando um caminho de compartilhamento localizado fora de um diretório home ou de compartilhamentos do usuário, coloque-o na lista de permissões em /etc/apparmor.d/local/usr.sbin.smbd. Por exemplo:

Dialeto não especificado na montagem

O cliente está usando uma versão não suportada do SMB/CIFS que é requerida pelo servidor.

Veja #Restringir protocolos para maior segurança para mais informações.

Impossível sobrescrever arquivos, erros de permissão

Possíveis soluções:

  • Acrescente a opção de montagem à entrada no .
  • Adicione à seção [global] do /etc/samba/smb.conf, no servidor.

Os clientes Windows continuam pedindo senha mesmo quando os compartilhamentos do Samba são criados com permissões de convidado

Defina dentro da seção global de /etc/samba/smb.conf:

map to guest = Bad Password

Se estiver usando Samba inferior a 4.10.10, use em vez de .

Problemas de conectividade com Windows 7 - mount error(12): cannot allocate memory

Um bug conhecido do Windows 7 que causa "mount error(12): cannot allocate memory" em um compartilhamento cifs perfeito no Linux, no fim das contas pode ser corrigido definindo algumas chaves de registro na caixa do Windows da seguinte maneira:

  • (set to )
  • HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size (set to )

Como alternativa, inicie o prompt de comando no modo administrador e execute o seguinte:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "LargeSystemCache" /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "Size" /t REG_DWORD /d 3 /f

Siga um destes procedimentos para que as configurações tenham efeito:

  • Reinicie o Windows
  • Reinicie o serviço de servidor via services.msc
  • A partir de um prompt de comando, execute: 'net stop lanmanserver' e 'net start lanmanserver' - O servidor irá reiniciar automaticamente depois de pará-lo.

Artigo original.

Problemas de conectividade com Windows 10 1709 e superiores - "Windows cannot access" 0x80004005

Este erro afeta algumas máquinas que executam o Windows 10 versão 1709 e posterior. Não está relacionado à desativação do SMB1 nesta versão, mas ao fato de a Microsoft desabilitar logons inseguros para convidados nesta versão para alguns, mas não para outros.

Para corrigir, abra o editor de Diretivas de Grupo (). Navegue até Configuração do computador\modelos administrativos\rede\Estação de trabalho Lanman > Habilitar logons de convidados inseguros e habilite-o. Como alternativa, altere o seguinte valor no registro:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters]
"AllowInsecureGuestAuth"=dword:1

Erro: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL

Se você é um usuário doméstico e usa o samba apenas para compartilhamento de arquivos de um servidor ou NAS, provavelmente não está interessado em compartilhar impressoras por meio dele. Nesse caso, você pode evitar que esse erro ocorra adicionando as seguintes linhas ao seu /etc/samba/smb.conf:

Reinicie o serviço do samba, smb.service, e então verifique os logs:

# cat /var/log/samba/smbd.log

e o erro não deverá mais estar aparecendo.

Falha ao compartilhar uma pasta

Isso significa que enquanto você está compartilhando uma pasta do Dolphin (gerenciador de arquivos) e tudo parece bem no início, depois de reiniciar o Dolphin o ícone de compartilhamento desapareceu da pasta compartilhada, e também algumas saídas como esta do terminal (Konsole):

‘net usershare’ returned error 255: net usershare: usershares are currently disabled

Para corrigir isto, ative o compartilhamento do usuário conforme descrito em #Ativar compartilhamentos de usuário.

"Nevagação" da rede falha com "Failed to retrieve share list from server"

E você está usando um firewall (iptables) porque não confia na sua rede local (escola, universidade, hotel). Isso pode ser devido ao seguinte: Quando o smbclient está navegando na rede local, ele envia uma solicitação de transmissão na porta udp 137. Os servidores na rede respondem ao seu cliente, mas como o endereço de origem desta resposta é diferente do destino endereço que o iptables viu ao enviar a solicitação para a listagem, o iptables não reconhecerá a resposta como "ESTABLISHED" ou "RELATED" e, portanto, o pacote será descartado. Uma possível solução é adicionar:

iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns

às definições de seu iptables.

Para Uncomplicated Firewall, será preciso adicionar ao final da seguinte linha em /etc/default/ufw

IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_irc nf_nat_irc"

e então executar o seguinte comando como root:

echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper
ufw allow CIFS
ufw reload

Para tornar esta alteração persistente às reinicializações, adicione a seguinte linha ao final de :

net.netfilter.nf_conntrack_helper=1

Protocolo de negociação falhou: NT_STATUS_INVALID_NETWORK_RESPONSE

O cliente provavelmente não tem acesso a compartilhamentos. Certifique-se de que o endereço IP dos clientes esteja na linha em /etc/samba/smb.conf.

Um outro problema pode ser o fato de que o cliente usa uma versão de protocolo inválida. Para verificar isso, tente conectar com o onde você especifica a versão máxima do protocolo manualmente:

$ smbclient -U <user name> -L //<server name> -m <protocol version: e. g. SMB2> -W <domain name>

Se o comando foi bem-sucedido, crie um arquivo de configuração:

~/.smb/smb.conf
[global]
  workgroup = <domain name>
  client max protocol = SMB2

Falha na conexão com o servidor: (Erro NT_STATUS_UNSUCCESSFUL)

Você provavelmente está passando um nome de servidor errado para . Para descobrir o nome do servidor, execute no servidor e veja a linha "Transient hostname"

Falha na conexão com o servidor: (Erro NT_STATUS_CONNECTION_REFUSED)

Certifique-se de que o servidor foi iniciado. Os diretórios compartilhados devem existir e ser acessíveis.

Falha com o protocolo de negociação: NT_STATUS_CONNECTION_RESET

Provavelmente o servidor está configurado para não aceitar o protocolo SMB1. Adicione a opção em /etc/samba/smb.conf. Ou simplesmente passe o argumento para .

Erro de senha quando as credenciais corretas são informadas (error 1326)

Samba 4.5 possui autenticação NTLMv1 desativada por padrão. É recomendável instalar as atualizações mais recentes disponíveis em clientes e negar acesso a clientes não suportados.

Se você ainda precisar de suporte para clientes muito antigos sem suporte ao NTLMV2 (por exemplo, Windows XP), é possível forçar a ativação do NTLMV1, embora isso não seja recomendável, por razões de segurança:

Se os clientes NTLMV2 não conseguirem autenticar quando o NTLMV1 tiver sido ativado, crie o seguinte arquivo no cliente:

Esta mudança também afeta os compartilhamentos de samba montados com mount.cifs. Se após a atualização para o Samba 4.5 sua montagem falhar, adicione a opção sec=ntlmssp ao seu comando de montagem, por exemplo.

mount.cifs //server/share /mnt/point -o sec=ntlmssp,...

Veja a página de manual do : ntlmssp - Use o hash de senha NTLMv2 encapsulado como mensagem Raw NTLMSSP. O padrão nas versões principais do kernel anteriores à v3.8 era sec=ntlm. Na v3.8, o padrão foi alterado para sec=ntlmssp.

Mapeando com caracteres reservador do Windows

Iniciando com o kernel 3.18, o módulo cifs usa a opção "mapposix" por padrão. Ao montar um compartilhamento usando extensões unix e uma configuração padrão do Samba, arquivos e diretórios contendo um dos sete caracteres reservados do Windows estão listados, mas não podem ser acessados.

Possíveis soluções são:

  • Usar a não documentada opção de montagem nomapposix para cifs
# mount.cifs //server/share /mnt/point -o nomapposix
  • Configurar o Samba para remapear o estilo de caracteres ("SFM", Services for Mac) para os nativos corretos usando fruit
  • Manualmente remapear os caracteres proibidos usando catia

A última abordagem (usando catia ou fruit) tem a desvantagem de filtrar arquivos com caracteres não imprimíveis.

Pasta compartilhada dentro do ambiente gráfico não está disponível para convidados

Esta seção pressupõe:

  1. Compartilhamentos do usuário são configurados seguindo a seção anterior
  2. Uma pasta compartilhada foi criada como um usuário não root da interface gráfica
  3. O acesso de convidados foi definido para a pasta compartilhada durante a criação
  4. O serviço Samba foi reiniciado pelo menos uma vez desde a última modificação do arquivo /etc/samba/smb.conf

Apenas para fins de esclarecimento, nas seguintes subseções assume-se:

  • A pasta compartilhada está localizada dentro do caminho do diretório inicial do usuário ()
  • O nome da pasta compartilhada é MySharedFiles
  • O acesso de convidado é somente leitura.
  • Os usuários do Windows acessarão o conteúdo da pasta compartilhada sem o prompt de login

Verifique a correta configuração do samba

Execute o seguinte comando em um terminal para testar a correção do arquivo de configuração:

$ testparm

Verifique a criação correta da pasta compartilhada

Execute os seguintes comandos a partir de um terminal:

$ cd /var/lib/samba/usershare
$ ls

Se tudo estiver bem, você notará um arquivo chamado mysharedfiles

Leia o conteúdo do arquivo usando o seguinte comando:

$ cat mysharedfiles

A saída do terminal deve exibir algo assim:

Verifique o acesso à pasta pelo convidado

Execute o seguinte comando a partir de um terminal. Se for solicitada uma senha, basta pressionar Enter:

$ smbclient -L localhost

Se tudo estiver bem, MySharedFiles deve ser exibido na coluna

Execute o seguinte comando para acessar a pasta compartilhada como convidado (login anônimo)

$ smbclient -N //localhost/MySharedFiles

Se tudo estiver bem, o prompt do cliente samba será exibido:

smb: \>

No prompt do samba, verifique se o convidado pode listar o conteúdo do diretório:

smb: \> ls

Se o erro for exibido, o problema provavelmente está nas permissões do diretório Unix. Certifique-se de que seu usuário do samba tenha acesso à pasta e a todas as pastas pai. Você pode testar isso usando sudo no usuário e tentar listar o diretório de montagem e todos os seus pais.

Mount error: Host is down

Este erro pode ser visto ao montar compartilhamentos de servidores Synology NAS. Use a opção de montagem para resolvê-lo.

Software caused connection abort

Os gerenciadores de arquivos que utilizam podem mostrar o erro Software caused connection abort ao gravar um arquivo em um compartilhamento/servidor. Isso pode ser devido ao servidor executando SMB/CIFS versão 1, que muitos roteadores usam para compartilhamento de unidade USB (por exemplo, roteadores Belkin). Para gravar nesses compartilhamentos, especifique a versão CIFS com a opção . Por exemplo:

Isso também pode acontecer após atualizar o Samba para a versão 4.11, que desativa o SMB1 como padrão, e acessar qualquer compartilhamento do Samba. Você pode reativá-lo adicionando

Problemas de conexão (devido a erros de autenticação)

Certifique-se de não deixar nenhum caractere de espaço antes de seu nome de usuário no arquivo de configuração do cliente Samba da seguinte forma:

O formato correto é o seguinte:

Windows 1709 ou mais recente não mostra o servidor Samba na rede

Com o Windows 10 versão 1511, o suporte para SMBv1 e, portanto, a descoberta de dispositivos NetBIOS foi desabilitado por padrão. Dependendo da edição real, as versões posteriores do Windows a partir da versão 1709 ("Fall Creators Update") não permitem mais a instalação do cliente SMBv1. Isso faz com que os hosts que executam o Samba não sejam listados nas visualizações "Rede (Vizinhança)" do Explorer. Embora não haja problemas de conectividade e o Samba ainda funcione bem, os usuários podem querer que seus hosts Samba sejam listados pelo Windows automaticamente. implementa uma daemon de host do Web Service Discovery. Isso permite que hosts (Samba), como seu dispositivo NAS local, sejam encontrados por Clientes de Descoberta de Serviços da Web, como o Windows. As configurações padrão devem funcionar para a maioria das instalações, tudo o que você precisa fazer é ativar o .

Se estiver com a configuração padrão, anunciar-se na rede com o nome do host da máquina no grupo "WORKGROUP" deve ser tudo o que você precisa na maioria dos casos. Caso seja necessário, você pode alterar as opções de configuração passando argumentos adicionais para wsdd adicionando-os em /etc/conf.d/wsdd (consulte a página de manual para wsdd para obter detalhes).

faz a mesma coisa, mas é escrito em C em vez de Python. Por padrão, ele procurará os valores  e  em smb.conf.

Arquivos IOS não podem mais ser copiados para o compartilhamento Samba no Arch Linux começando com IOS 14.5

Começando com o IOS 14.5 tentando transferir de um dispositivo executando o IOS usando o aplicativo "Files" para um compartilhamento de samba no Arch Linux resultará no erro:

The operation couldn't be completed
Operation canceled

Para corrigir esse problema, adicione o seguinte à seção global do seu smb.conf e reinicie smb.service. Comentário opcional:

## addition for IOS Files transfer-to server
vfs object = fruit streams_xattr

Veja https://apple.stackexchange.com/q/424681 Apple.Stackexchange.com - "The operation couldn't be completed"/"Operation canceled" error message when saving to a Samba share via Files app.

Veja também

gollark: Well, three of them have to be Olivia.
gollark: Cool.
gollark: Actually, maybe you should check for suspicious code which hides data/runs shell commands.
gollark: osmarkscalculator™.
gollark: My code erased itself upon being run, so it doesn't appear in the actual entries, of course.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.