Perché mac smb connect fallisce con il login da cli ma funziona da finder e con account guest?

8

Quindi ho un mac (Yosemite) che condivide una cartella di sola lettura per molti utenti e l'account guest è abilitato per montare / accedere a quella cartella in modo che gli utenti possano scaricare qualsiasi cosa. Mi sto collegando alla condivisione come manager con un altro mac (Sierra). Funziona quando esco come utente ospite dalla riga di comando:

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

o se mi collego da finder come guest:

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

Ora c'è un account utente amministratore su mac (Yosemite). Voglio montare / accedere a quella cartella con privilegio di lettura, ma tutti i tentativi di montare la cartella con un login falliscono se richiedo il nome utente dalla riga di comando.

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

Tuttavia, se mi collego con il Finder:

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

In ogni caso di connessioni riuscite, posso vedere nella sezione di condivisione del server di Proprietà del sistema che quando faccio clic su Condivisione file: Attivo - > Opzioni ... rivela

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

Riesci a indovinare perché la connessione viene rifiutata quando provo a connettermi tramite smb con la riga di comando utilizzando l'account che richiede l'autenticazione?

Modifica

Sì, AFP connect funziona in ogni caso incluso il cli con un account che richiede una password. Ad esempio:

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

Per motivi di prova ho provato anche ad abbassare le regole di autenticazione smb per ogni evenienza, ma non c'è stato alcun effetto, nemmeno l'invio di password su testo in chiaro. In quanto tale:

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

Ecco alcuni file di log nel caso in cui qualcuno possa ottenere da loro qualsiasi informazione su questo problema. (Mi dispiace pubblicare i log fuori sito, ma c'era troppa quantità di testo nei log di successo.)

In primo luogo, registro client di connessione a MacBook-Pro.local tramite SMB tramite Finder utilizzando il flusso in questo modo:

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

Produce output di registro come questo nella console:

link

Ora l'elenco di tutte le cartelle condivise è disponibile per l'amministratore, ovviamente. Quindi, facendo clic sulla cartella File, viene generato un output più simile al registro:

link

La cartella File si monta e può essere letta / scritta dall'utente amministratore

Per fare un confronto, ecco un log da Console quando provi a connetterti alla risorsa usando puro strumento da riga di comando 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

SOLUZIONE

Ho trovato che questo frammento di codice AppleScript funziona dalla riga di comando.

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

Avvierà una finestra di conferma con il campo della password compilato. Tuttavia, richiede di inserire la password in chiaro. Ovviamente, può anche essere fatto senza la password e digitarlo ogni volta.

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

Così ho provato a salvare la password. Dopo aver spuntato la casella per salvare l'accesso al portachiavi, lo stesso comando ha esito positivo senza la password nel testo in chiaro, ma presenta ancora la finestra di conferma con la casella Password compilata e spuntata anche la casella "Ricorda password".

Se la password è stata salvata, non è stata ancora applicata alla connessione mount_smbfs. Il tentativo di montaggio fallito.

Forse questa idea di osascript è una soluzione, ma non risponde alla domanda perché samba si connette per finder ma non mentre usa cli.

    
posta ndasusers 10.10.2016 - 21:54
fonte

1 risposta

-2

GKClientProxy: clientForBundleID: 4

    
risposta data 22.04.2017 - 23:35
fonte

Leggi altre domande sui tag