Pourquoi la connexion mac smb échoue avec la connexion à partir de cli mais fonctionne à partir du Finder et avec le compte invité


8

J'ai donc un mac (Yosemite) partageant un dossier en lecture seule pour de nombreux utilisateurs et le compte invité est activé pour monter / accéder à ce dossier afin que les utilisateurs puissent télécharger quoi que ce soit. Je me connecte au partage en tant que gestionnaire avec un autre mac (Sierra). Cela fonctionne lorsque je lance en tant qu'utilisateur invité depuis la ligne de commande:

mount_smbfs //guest@macbook-pro.local/Files /tmp/files
ls /tmp/files
fileA    fileB

ou si je me connecte à partir du Finder en tant qu'invité:

click MacBook-Pro -> Connect As -> Guest -> Connect
double click Files
ls /Volumes/Files
fileA    fileB

Maintenant, il y a un compte d'utilisateur administrateur sur le mac (Yosemite). Je veux monter / accéder à ce dossier avec le privilège de lecture / écriture, mais toutes les tentatives de monter le dossier avec une connexion échouent si j'ai besoin du nom d'utilisateur depuis la ligne de commande.

mount_smbfs //admin@macbook-pro.local/Files /tmp/files
Password for MacBook-pro.local:
mount_smbfs: server rejected the connection: Authentication error

Cependant, si je me connecte avec Finder:

click MacBook-Pro -> Connect As -> Registered User
Username: admin
Password: password
 -> Connect
double click Files
ls /Volumes/Files
fileA    fileB

Dans tous les cas de connexions réussies, je peux voir dans la section de partage de serveur des propriétés système que lorsque je clique sur le partage de fichiers: Sur -> Options ... révèle

Share files and folders using SMB
  Number of users connected: 1

Pouvez-vous deviner pourquoi la connexion est rejetée lorsque j'essaie de me connecter par smb avec la ligne de commande en utilisant le compte qui nécessite une authentification?

Éditer

Oui, AFP connect fonctionne dans tous les cas, y compris le cli avec un compte nécessitant un mot de passe. Par exemple:

mount_afp -i afp://admin@macbook-pro.local/Files /tmp/files
Password: 
ls /tmp/files
fileA    fileB

Pour des raisons de test, j'ai également essayé d'abaisser les règles d'authentification smb au cas où, mais cela n'a eu aucun effet, même en envoyant un mot de passe sur du texte en clair. En tant que tel:

sudo nano /etc/nsmb.conf
   [default]
   minauth=none
^c+X
mount_smbfs smb://admin:password@macbook-pro.local/Files /tmp/files
mount_smbfs: server rejected the connection: Authentication error

EDIT2

Voici quelques fichiers journaux au cas où quelqu'un pourrait obtenir des informations sur ce problème. (Désolé de publier les journaux hors site, mais il y avait trop de texte dans les journaux réussis.)

Tout d'abord, le journal client de la connexion à MacBook-Pro.local via SMB via le Finder en utilisant le flux comme suit:

Click MacBook-Pro
Connect As: Registered User
Name: admin
Password: password
Connect

Produit une sortie de journal comme celle-ci dans la console:

http://paste.ubuntu.com/23308183/

Maintenant, la liste de tous les dossiers de partage est disponible pour l'administrateur. Donc, cliquer sur le dossier Fichiers produit une sortie de journal plus comme ceci:

http://paste.ubuntu.com/23308186/

Le dossier de fichiers se monte et peut être lu / écrit par l'utilisateur administrateur

À titre de comparaison, voici un journal de la console lorsque vous essayez de vous connecter à la ressource à l'aide de l'outil de ligne de commande pure mount_smbfs:

default 09:43:21.257429 -0400   gamed   GKClientProxy: clientForBundleID:
default 09:43:21.257543 -0400   gamed   GKClientProxy: updateIfRecentlyInstalled
default 09:43:21.258623 -0400   gamed   GKClientProxy: clientForBundleID:
default 09:43:21.258751 -0400   gamed   GKClientProxy: updateIfRecentlyInstalled
default 09:43:21.277114 -0400   opendirectoryd  Client: <private>, UID: 0, EUID: 0, GID: 0, EGID: 0
default 09:43:21.277194 -0400   opendirectoryd  <private> completed, delivered 1 result
default 09:43:22.025420 -0400   mount_smbfs subsystem: com.apple.SystemConfiguration, category: SCPreferences, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 2, enable_private_data: 0
default 09:43:22.030767 -0400   mount_smbfs subsystem: com.apple.network, category: , enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 2, enable_private_data: 0
default 09:43:22.069146 -0400   opendirectoryd  Client: <private>, UID: 0, EUID: 0, GID: 0, EGID: 0
default 09:43:22.069231 -0400   opendirectoryd  <private> completed, delivered 1 result
default 09:43:22.069385 -0400   opendirectoryd  Client: <private>, UID: 0, EUID: 0, GID: 0, EGID: 0
default 09:43:22.069479 -0400   opendirectoryd  <private> completed, delivered 1 result
default 09:43:22.072139 -0400   opendirectoryd  Client: <private>, UID: 502, EUID: 502, GID: 20, EGID: 20
default 09:43:22.072212 -0400   opendirectoryd  <private> completed, delivered 1 result
error   09:43:22.146661 -0400   kernel  loginwindow is not entitled
error   09:43:22.146708 -0400   kernel  loginwindow is not entitled
error   09:43:22.146799 -0400   kernel  UserEventAgent is not entitled
error   09:43:22.146882 -0400   kernel  UserEventAgent is not entitled
default 09:43:22.886004 -0400   AppleIDAuthAgent    SERVER Doing account check for "a...n@???????.???". (scheduledAccountCheckDispatcher()/AppleIDAuthd.cpp #545) accountCheckDispatch
default 09:43:22.886074 -0400   AppleIDAuthAgent    Checking account <private>
default 09:43:22.887673 -0400   AppleIDAuthAgent    _AppleIDAuthAccountForAppleID falling back to account aliases

error   09:43:22.891028 -0400   AppleIDAuthAgent    ### Request GS token for '<private>' start failed: -101
default 09:43:22.891078 -0400   AppleIDAuthAgent    ### Authenticate '<private>' failed: <private>
default 09:43:22.891158 -0400   AppleIDAuthAgent    SERVER Didn't succeed with .authenticate, and error is ERROR:"CSIdentityErrorDomain" #-101 kCSIdentityAppleIDInvalidAccountOrPasswordErr {  } so releasing session. (___Z31__AppleIDSessionDoCreateSessionPK10__CFStringS1_PK14__CFDictionaryPS1_PS4_PP9__CFError_block_invoke()/AppleIDXMLServerCommunications.cpp #902) queue.session.
default 09:43:22.891399 -0400   AppleIDAuthAgent    Next time for '<private>': 2016-10-11 13:43:22 +0000 (497886202.891342 + 0.000000), 0.000000 seconds
default 09:43:22.891514 -0400   AppleIDAuthAgent    Next time for '<private>': 2016-10-11 13:43:22 +0000 (497886202.891467 + 0.000000), 0.000000 seconds
default 09:43:22.891560 -0400   AppleIDAuthAgent    Next action time for <private>: <private> (because the account does not have a certificate nor an uploaded csr)
default 09:43:25.393805 -0400   CommCenter  #watchdog #I Callback Watchdog: checkin 119
default 09:43:25.394014 -0400   CommCenter  #watchdog #I Server Watchdog: checkin 119
default 09:43:28.212369 -0400   opendirectoryd  Client: <private>, UID: 502, EUID: 502, GID: 20, EGID: 20
default 09:43:28.212476 -0400   opendirectoryd  <private> failed with error '<private>' (2)
default 09:43:29.061659 -0400   kernel  SmartBattery: finished polling type 4
default 09:43:29.847392 -0400   gamed   GKClientProxy: clientForBundleID:
default 09:43:29.847446 -0400   gamed   GKClientProxy: updateIfRecentlyInstalled
default 09:43:29.847970 -0400   gamed   GKClientProxy: clientForBundleID:
default 09:43:29.847992 -0400   gamed   GKClientProxy: updateIfRecentlyInstalled
default 09:43:29.879093 -0400   opendirectoryd  Client: <private>, UID: 0, EUID: 0, GID: 0, EGID: 0
default 09:43:29.879183 -0400   opendirectoryd  <private> completed, delivered 1 result

SOLUTION DE CONTOURNEMENT

J'ai trouvé que cet extrait AppleScript fonctionne à partir de la ligne de commande.

osascript -e 'tell application "Finder" to mount volume "smb://admin:password@macbook-pro.local/Files"'

Il ouvrira une fenêtre de confirmation avec le champ de mot de passe rempli. Cependant, il faut mettre le mot de passe en texte clair. Évidemment, cela peut aussi se faire sans mot de passe et le taper à chaque fois.

osascript -e 'tell application "Finder" to mount volume "smb://admin@macbook-pro.local/Files"'

J'ai donc essayé d'enregistrer le mot de passe. Après avoir coché la case pour enregistrer la connexion au trousseau, la même commande réussit sans avoir le mot de passe en texte clair, mais présente toujours la fenêtre de confirmation avec la case Mot de passe remplie et la case "Mémoriser le mot de passe" également cochée.

Le mot de passe ayant été enregistré, ne s'appliquait toujours pas à la connexion mount_smbfs. La tentative de montage a échoué.

Peut-être que cette idée osascript est une solution de contournement, mais elle ne répond pas à la question de savoir pourquoi samba se connecte par finder mais pas lors de l'utilisation de cli.


Pouvez-vous essayer de vous connecter via AFP et voir si cela fonctionne?
NoahL

Merci pour ton aide. Cela fonctionne sûrement par l'AFP dans tous les cas. Finder, ligne de commande et avec script que ce soit un invité ou un mot de passe nécessitant un utilisateur.
ndasusers

essayez ceci: sur le serveur, allez dans Préférences Système -> Partage. Au centre de la fenêtre se trouve un cercle vert. À côté, il est écrit "partage de fichiers: activé" au milieu à gauche de la fenêtre, cliquez sur "options ...". Dans le menu déroulant, activez "partager des fichiers et des dossiers à l'aide de smb"
NoahL

Faites-moi savoir comment cela se passe
NoahL

Merci encore. Le partage de fichiers: activé, partager des fichiers à l'aide de smb est déjà activé. Chaque fois qu'une connexion réussie est accordée, les utilisateurs y sont également numérotés.
ndasusers

Réponses:


-3

GKClientProxy: clientForBundleID: 4


4
Bienvenue à Ask Different et merci pour votre réponse! Nous recherchons toujours des solutions et préférons des réponses qui fournissent des informations telles que: (1) Comment pensez-vous que la réponse que vous avez fournie résout le problème et / ou pourquoi elle peut être meilleure que d'autres solutions, (2) Liens vers des informations de support et / ou des produits que vous recommandez. Des informations supplémentaires telles que celles-ci peuvent aider le PO et d'autres à trouver des informations supplémentaires par eux-mêmes. Voir Comment répondre pour obtenir des conseils sur la manière de fournir des réponses ici.
Monomeeth
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.