Warum schlägt mac smb connect mit der Anmeldung von cli fehl, funktioniert aber vom Finder und mit dem Gastkonto?

8

Ich habe also einen Mac (Yosemite), der einen schreibgeschützten Ordner für viele Benutzer freigibt, und das Gastkonto kann diesen Ordner bereitstellen / darauf zugreifen, sodass Benutzer alles herunterladen können. Ich verbinde mich als Manager mit einem anderen Mac (Sierra) mit der Freigabe. Es funktioniert, wenn ich als Gastbenutzer über die Befehlszeile ausgeführt werde:

mount_smbfs //[email protected]/Files /tmp/files
ls /tmp/files
fileA    fileB

oder wenn ich mich vom Finder als Gast verbinde:

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

Jetzt gibt es ein Administrator-Benutzerkonto auf dem Mac (Yosemite). Ich möchte diesen Ordner mit Lese- / Schreibberechtigung bereitstellen / darauf zugreifen, aber alle Versuche, den Ordner mit einer Anmeldung bereitzustellen, schlagen fehl, wenn ich den Benutzernamen über die Befehlszeile benötige.

mount_smbfs //[email protected]/Files /tmp/files
Password for MacBook-pro.local:
mount_smbfs: server rejected the connection: Authentication error

Wenn ich mich jedoch mit Finder verbinde:

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

In jedem Fall erfolgreicher Verbindungen kann ich im Abschnitt "Serverfreigabe" der Systemeigenschaften sehen, dass beim Klicken auf "Dateifreigabe: Ein -> Optionen ..." angezeigt wird

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

Können Sie sich vorstellen, warum die Verbindung abgelehnt wird, wenn ich versuche, über das Konto, für das eine Authentifizierung erforderlich ist, eine Verbindung per SMS mit der Befehlszeile herzustellen?

Bearbeiten

Ja, AFP Connect funktioniert in jedem Fall, einschließlich der CLI mit einem Konto, für das ein Kennwort erforderlich ist. Zum Beispiel:

mount_afp -i afp://[email protected]/Files /tmp/files
Password: 
ls /tmp/files
fileA    fileB

Zum Testen habe ich auch versucht, die Regeln für die SMB-Authentifizierung für alle Fälle zu senken, aber es gab keine Auswirkung, selbst wenn ein Passwort für Klartext gesendet wurde. So wie:

sudo nano /etc/nsmb.conf
   [default]
   minauth=none
^c+X
mount_smbfs smb://admin:[email protected]/Files /tmp/files
mount_smbfs: server rejected the connection: Authentication error

EDIT2

Hier sind einige Protokolldateien für den Fall, dass jemand Informationen zu diesem Problem von ihnen erhalten kann. (Es tut uns leid, die Protokolle außerhalb des Unternehmens zu veröffentlichen, aber die erfolgreichen Protokolle enthielten zu viel Text.)

Zunächst das Client-Protokoll zum Herstellen einer Verbindung zu MacBook-Pro.local über SMB über Finder unter Verwendung des folgenden Ablaufs:

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

Erzeugt eine Protokollausgabe wie folgt in der Konsole:

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

Jetzt steht dem Administrator natürlich die Liste aller Freigabeordner zur Verfügung. Wenn Sie also auf den Ordner "Dateien" klicken, erhalten Sie mehr Protokollausgabe wie folgt:

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

Der Ordner "Dateien" wird bereitgestellt und kann vom Administrator gelesen / geschrieben werden

Zum Vergleich ist hier ein Protokoll von Console, wenn Sie versuchen, mit dem reinen Befehlszeilentool mount_smbfs eine Verbindung zur Ressource herzustellen:

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

Umgehung

Ich habe festgestellt, dass dieses AppleScript-Snippet über die Befehlszeile funktioniert.

osascript -e 'tell application "Finder" to mount volume "smb://admin:[email protected]/Files"'

Es wird ein Bestätigungsfenster mit dem ausgefüllten Kennwortfeld geöffnet. Das Kennwort muss jedoch im Klartext eingegeben werden. Natürlich kann dies auch ohne das Passwort erfolgen und jedes Mal eingegeben werden.

osascript -e 'tell application "Finder" to mount volume "smb://[email protected]/Files"'

Also habe ich versucht, das Passwort zu speichern. Nachdem Sie das Kontrollkästchen aktiviert haben, um die Anmeldung im Schlüsselbund zu speichern, ist derselbe Befehl erfolgreich, ohne dass das Kennwort im Klartext enthalten ist. Es wird jedoch weiterhin das Bestätigungsfenster mit dem ausgefüllten Kennwortfeld und dem Kontrollkästchen "Kennwort speichern" angezeigt.

Nachdem das Kennwort gespeichert wurde, galt es immer noch nicht für die Verbindung mount_smbfs. Der Versuch zum Mounten ist fehlgeschlagen.

Vielleicht ist diese Osascript-Idee eine Problemumgehung, aber sie beantwortet nicht die Frage, warum Samba über den Finder eine Verbindung herstellt, aber nicht, während Cli verwendet wird.

ndasusers
quelle
Können Sie versuchen, eine Verbindung über AFP herzustellen und festzustellen, ob dies funktioniert?
NoahL
Danke fürs Helfen. Es funktioniert sicherlich in allen Fällen von AFP. Finder, Befehlszeile und mit Skript, ob Gast oder Passwort Benutzer benötigen.
ndasusers
Versuchen Sie Folgendes: Gehen Sie auf dem Server zu Systemeinstellungen -> Freigabe. In der Mitte des Fensters befindet sich ein grüner Kreis. Daneben steht "Dateifreigabe: Ein" in der Mitte links im Fenster und klicken Sie auf "Optionen ...". Aktivieren Sie in der Dropdown-Liste "Dateien und Ordner mit SMB freigeben"
NoahL
Lassen Sie mich wissen, wie das geht
NoahL
Danke nochmal. Die Dateifreigabe: Ein, Dateien mit jdm freigeben ist bereits aktiviert. Immer wenn eine erfolgreiche Verbindung hergestellt wird, werden die Benutzer dort auch in diesem Fenster nummeriert.
ndasusers

Antworten:

-3

GKClientProxy: clientForBundleID: 4

ddjskater
quelle
4
Willkommen bei Ask Different und vielen Dank für Ihre Antwort! Wir sind immer auf der Suche nach Lösungen und bevorzugen Antworten mit Informationen wie: (1) Wie Sie denken, dass die von Ihnen angegebene Antwort das Problem löst und / oder warum sie möglicherweise besser ist als andere Lösungen, (2) Links zu unterstützenden Informationen und / oder Produkte, die Sie empfehlen. Zusätzliche Informationen wie diese können dem OP und anderen helfen, zusätzliche Informationen für sich selbst zu finden. Sehen Sie wie man Antwort für Tipps Antworten hier bietet.
Monomeeth