La connexion avec Samba à un partage Windows renvoie «NT_STATUS_DUPLICATE_NAME»

10

J'ai défini un répertoire partagé sur ma machine Windows et donné des autorisations de contrôle total à username @ workgroup.

Lorsque j'essaie de me connecter à la machine Windows avec Linux à l'aide de smbclient, j'obtiens l'erreur NT_STATUS_DUPLICATE_NAME. Voici la transcription:

$ 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

Si je rentre volontairement le mauvais nom d' utilisateur, mot de passe ou groupe de travail, je reçois une autre erreur: NT_STATUS_LOGON_FAILURE. Il semble donc que je reçois les autres informations correctement.

J'ai mis une entrée dans / etc / hosts qui pointe windows-machinevers son adresse IP. Le nom NetBIOS de la machine Windows est quelque chose de différent.

Quelqu'un sait-il ce que signifie cette erreur?

Neil
la source

Réponses:

9

Le nom NetBIOS de la machine Windows est quelque chose de différent

C'est ton problème. Il est facilement résolu par un piratage du registre sur la machine Windows. Voir http://support.microsoft.com/kb/281308 pour les détails.

Mettre à jour

L'article de support d'origine lié ci-dessus a disparu (merci Microsoft). Le nouvel article est l' accès au partage du serveur de fichiers SMB échoue via l'alias DNS CNAME .

Joril souligne également qu'un serveur peut avoir plusieurs noms NetBIOS. Cela se fait en modifiant la clé de registre:

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

et en ajoutant les noms supplémentaires.

John Rennie
la source
1
Je me demande pourquoi ce n'est pas simplement corrigé dans un patch.
Neil
Ce n'est pas un bug, c'est délibérément conçu de cette façon. Peut-être pour des raisons de sécurité, mais je ne sais pas exactement pourquoi. Je suppose que cela vous empêche de vous connecter accidentellement au mauvais serveur si vous avez des entrées non autorisées dans le fichier hosts ou DNS duff. Personnellement, j'ai mis le hack de registre sur tous mes serveurs.
John Rennie
lien semble mort (404). Quoi qu'il en soit, la clé devrait êtreHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableStrictNameChecking
Joril
... ou mieux encore, OptionalNames
Joril
6

Vous obtenez probablement cette erreur car la machine Windows ne se comprend pas pour être identifiée en tant que connexion. (L'utilisation d'une information d'authentification incorrecte modifie l'erreur car ce problème n'apparaît que plus tard dans le processus de connexion.)

Essayez de vous y connecter en tant que son numéro IP, non windows-machine. Si cela fonctionne, cela confirme que le nom est ce qui se passe, et vous pouvez le résoudre en faisant comprendre au PDC qu'il est windows-machineou en utilisant simplement le numéro IP.

le chaos
la source
3

Vous devez utiliser l'indicateur "-m" pour spécifier la version maximale du protocole que vous utiliserez. Par défaut c'est "NT1", ici depuis la page de manuel de 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.

Je soupçonne la version "NT1" de s'appuyer sur des choses netbios, contrairement à SMB2 et aux suivantes.

Alors essayez à nouveau avec "-m SMB3" ou "-m SMB2", vous bénéficiez également de beaucoup de performances.

ThoSil
la source
2

vous pouvez utiliser l'option -I et fournir l'adresse IP.

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

Vous ne pouvez pas utiliser le nom de la machine dans / etc / hosts, ni probablement le nom du serveur DNS.

Vous devez utiliser l'adresse IP de la machine ou le nom NetBIOS de la machine spécifiée dans Windows.

Pour rechercher le nom NetBIOS dans Windows XP:

  1. Faites un clic droit sur "Poste de travail"
  2. Cliquez sur "Propriétés"
  3. Cliquez sur l'onglet "Nom de l'ordinateur"
  4. Lisez le champ "Nom complet de l'ordinateur" jusqu'à la première période '.'
Neil
la source