A conexão com o Samba a um compartilhamento do Windows retorna "NT_STATUS_DUPLICATE_NAME"

10

Eu configurei um diretório compartilhado na minha máquina Windows e recebi permissões de controle total para username @ workgroup.

Quando tento me conectar à máquina Windows com Linux usando smbclient, recebo o erro NT_STATUS_DUPLICATE_NAME. Aqui está a transcrição:

$ smbclient -U username -W workgroup -L //windows-machine
Enter username's password: 
Domain=[workgroup] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
tree connect failed: NT_STATUS_DUPLICATE_NAME

Se eu entrar intencionalmente o nome de usuário errado, senha ou grupo de trabalho, eu recebo um erro diferente: NT_STATUS_LOGON_FAILURE. Parece que estou obtendo as outras informações corretamente.

Coloquei uma entrada no / etc / hosts que aponta windows-machinepara o seu endereço IP. O nome NetBIOS da máquina Windows é algo diferente.

Alguém sabe o que esse erro significa?

Neil
fonte

Respostas:

9

O nome NetBIOS da máquina Windows é algo diferente

Esse é o seu problema. É facilmente corrigido por um hacker de registro na máquina Windows. Consulte http://support.microsoft.com/kb/281308 para obter detalhes.

Atualizar

O artigo de suporte original vinculado acima desapareceu (obrigado Microsoft). O novo artigo é acesso de compartilhamento do servidor de arquivos SMB sem êxito por meio do alias DNS CNAME .

Joril também aponta que um servidor pode ter vários nomes NetBIOS. Isso é feito editando a chave do registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\OptionalNames

e adicionando os nomes extras.

John Rennie
fonte
1
Eu me pergunto por que isso não é apenas corrigido em um patch.
Neil
Não é um bug, é deliberadamente projetado dessa maneira. Possivelmente por segurança, embora não tenha certeza do porquê. Suponho que ele interrompe a conexão acidental com o servidor errado, se você tiver entradas não autorizadas no arquivo hosts ou duplicar o DNS. Pessoalmente, coloquei o hack do registro em todos os meus servidores.
31411 John Rennie
o link parece morto (404). De qualquer forma, a chave deve ser o seguinteHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableStrictNameChecking
Joril
... ou melhor ainda, OptionalNames
Joril 21/06/19
6

Você provavelmente está recebendo esse erro porque a máquina Windows não entende a si mesma como sendo o que você está conectando a ela. (O uso de informações de autenticação incorretas altera o erro, pois esse problema não surge até mais tarde no processo de conexão.)

Tente conectar-se a ele como seu número IP, não windows-machine. Se isso funcionar, confirma que o nome está acontecendo e você pode resolvê-lo, fazendo o PDC entender que é windows-machineou apenas usando o número IP.

caos
fonte
3

Você deve usar o sinalizador "-m" para especificar a versão máxima do protocolo que você usará. Por padrão, é "NT1", aqui na página de manual do smbclient:

-m|--max-protocol protocol
    This allows the user to select the highest SMB protocol level that
    smbclient will use to connect to the server. By default this is set
    to NT1, which is the highest available SMB1 protocol. To connect
    using SMB2 or SMB3 protocol, use the strings SMB2 or SMB3
    respectively. Note that to connect to a Windows 2012 server with
    encrypted transport selecting a max-protocol of SMB3 is required.

Eu suspeito que a versão "NT1" dependa de coisas de netbios, ao contrário do SMB2 e do próximo.

Portanto, tente novamente com "-m SMB3" ou "-m SMB2", também beneficiando muito no desempenho.

ThoSil
fonte
2

você pode usar a opção -I e fornecer o endereço IP.

smbclient -U username -W workgroup -L //windows-machine  -I <machine-ipaddr>
Panciz
fonte
0

Você não pode usar o nome da máquina em / etc / hosts, nem provavelmente o nome do servidor DNS.

Você deve usar o endereço IP da máquina ou o nome NetBIOS da máquina especificada no Windows.

Para encontrar o nome NetBIOS no Windows XP:

  1. Clique com o botão direito do mouse em "Meu Computador"
  2. Clique em "Propriedades"
  3. Clique na guia "Nome do computador"
  4. Leia o campo "Nome completo do computador" até o primeiro período '.'
Neil
fonte