Perché mac smb connect non riesce con l'accesso da cli ma funziona da finder e con l'account guest?


8

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

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

o se mi connetto dal Finder come ospite:

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

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

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

Tuttavia, se mi connetto con 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, nella sezione di condivisione del server in Proprietà del sistema posso vedere che quando faccio clic su Condivisione file: Attivo -> Opzioni ...

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?

modificare

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

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

Per motivi di test ho anche provato ad abbassare le regole di autenticazione smb per ogni evenienza, ma non ci sono stati effetti, nemmeno l'invio di password in chiaro. Come tale:

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

Ecco alcuni file di registro nel caso in cui qualcuno possa ottenere informazioni da questo problema. (Mi dispiace pubblicare i log fuori sede, ma c'era troppo testo nei log riusciti.)

Innanzitutto, il registro client della 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 un output del registro in questo modo nella console:

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

Ora l'elenco di tutte le cartelle condivise è ovviamente disponibile per l'amministratore. Quindi facendo clic sulla cartella File si ottiene un output di registro più simile a questo:

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

La cartella dei file viene montata e può essere letta / scritta dall'utente amministratore

Per un confronto, ecco un registro dalla console quando si tenta di connettersi alla risorsa utilizzando lo strumento da riga di comando puro 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 AppleScript funziona dalla riga di comando.

osascript -e 'tell application "Finder" to mount volume "smb://admin:password@macbook-pro.local/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://admin@macbook-pro.local/Files"'

Quindi ho provato a salvare la password. Dopo aver spuntato la casella per salvare il login nel portachiavi, lo stesso comando riesce senza avere la password nel testo in chiaro, ma presenta comunque la finestra di conferma con la casella Password compilata e anche la casella "Ricorda password".

Dopo aver salvato la password, non si applicava ancora alla connessione mount_smbfs. Il tentativo di montare non è riuscito.

Forse questa idea di JavaScript è una soluzione alternativa, ma non risponde alla domanda sul perché samba si connette tramite finder ma non durante l'utilizzo di cli.


Puoi provare a connetterti tramite AFP e vedere se funziona?
NoahL

Grazie dell'aiuto. Funziona sicuramente da AFP in tutti i casi. Finder, riga di comando e con script, sia che si tratti di un utente o di una password che necessita di un utente.
ndasusers

prova questo: sul server, vai su Preferenze di Sistema -> Condivisione. Al centro della finestra c'è un cerchio verde. Accanto ad essa dice "condivisione file: on" nella parte centrale sinistra della finestra, premi "opzioni ...". Nel
menu a

Fammi sapere come va
NoahL

Grazie ancora. La condivisione dei file: on, condividere i file usando smb è già abilitata. Ogni volta che viene concessa una connessione corretta, gli utenti vengono numerati anche in quella finestra.
ndasusers

Risposte:


-3

GKClientProxy: clientForBundleID: 4


4
Benvenuti in Ask Different e grazie per la risposta! Siamo sempre alla ricerca di soluzioni e preferiamo risposte che forniscano informazioni come: (1) Come pensi che la risposta che hai fornito risolva il problema e / o perché potrebbe essere migliore di altre soluzioni, (2) Collegamenti a informazioni di supporto e / o prodotti che stai raccomandando. Informazioni aggiuntive come questa possono aiutare l'OP e altri, a trovare informazioni aggiuntive per se stessi. Vedi Come rispondere per suggerimenti su come fornire risposte qui.
Monomeeth
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.