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.