¿Por qué mac smb connect falla con el inicio de sesión desde cli pero funciona desde el buscador y con la cuenta de invitado?

8

Entonces, tengo una Mac (Yosemite) que comparte una carpeta de solo lectura para muchos usuarios y la cuenta de invitado está habilitada para montar / acceder a esa carpeta para que los usuarios puedan descargar lo que sea. Me estoy conectando al recurso compartido como administrador con otro mac (Sierra). Funciona cuando ejecuto como usuario invitado desde la línea de comandos:

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

o si me conecto desde el buscador como invitado:

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

Ahora hay una cuenta de usuario administrador en la Mac (Yosemite). Quiero montar / acceder a esa carpeta con privilegio de lectura y escritura, pero todos los intentos de montar la carpeta con un inicio de sesión fallan si requiero el nombre de usuario desde la línea de comandos.

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

Sin embargo, si me conecto con Finder:

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

En cada caso de conexiones exitosas, puedo ver en la sección de servidor compartido de Propiedades del sistema que cuando hago clic en Compartir archivos: Activado -> Opciones ... revela

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

¿Puedes adivinar por qué se rechaza la conexión cuando intento conectarme por smb con la línea de comando usando la cuenta que requiere autenticación?

Editar

Sí, AFP connect funciona en todos los casos, incluido el cli con una cuenta que requiere una contraseña. Por ejemplo:

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

En aras de las pruebas, también intenté reducir las reglas de autenticación smb por si acaso, pero no hubo ningún efecto, incluso enviando la contraseña en texto sin formato. Como tal:

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

Aquí hay algunos archivos de registro en caso de que alguien pueda obtener información sobre este problema. (Lamento publicar los registros fuera del sitio, pero había demasiado texto en los registros exitosos).

Primero, el registro del cliente de conectarse a MacBook-Pro.local a través de SMB a través del Finder usando flujo de esta manera:

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

Produce una salida de registro como esta en la consola:

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

Ahora la lista de todas las carpetas compartidas está disponible para el administrador, por supuesto. Por lo tanto, al hacer clic en la carpeta Archivos, se produce una salida de registro más similar:

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

La carpeta de archivos se monta y puede ser leída / escrita por el usuario administrador

A modo de comparación, aquí hay un registro de la consola al intentar conectarse al recurso utilizando la herramienta de línea de comandos pura 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

SOLUCIÓN ALTERNA

Encontré que este fragmento de AppleScript funciona desde la línea de comandos.

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

Se abrirá una ventana de confirmación con el campo de contraseña completado. Sin embargo, requiere poner la contraseña en texto claro. Obviamente, también se puede hacer sin la contraseña y escribirla cada vez.

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

Así que intenté guardar la contraseña. Después de marcar la casilla para guardar el inicio de sesión en el llavero, el mismo comando tiene éxito sin tener la contraseña en el texto sin formato, pero aún presenta la ventana de confirmación con el cuadro Contraseña completado y el cuadro "Recordar contraseña" también marcado.

Tener la contraseña guardada, aún no se aplica a la conexión mount_smbfs. El intento de montar falló.

Quizás esta idea de osascript es una solución alternativa, pero no responde a la pregunta de por qué samba se conecta mediante el buscador pero no mientras usa cli.

ndasusers
fuente
¿Puedes intentar conectarte a través de AFP y ver si eso funciona?
NoahL
Gracias por ayudar. Seguramente funciona por AFP en todos los casos. Buscador, línea de comando y con script si es un invitado o contraseña que necesita usuario.
ndasusers
intente esto: en el servidor, vaya a Preferencias del sistema -> Compartir. En el centro de la ventana hay un círculo verde. Junto a él dice "compartir archivos: en" en el centro izquierdo de la ventana, presione "opciones ...". En el menú desplegable, active "compartir archivos y carpetas usando smb"
NoahL
Déjame saber cómo va eso
NoahL
Gracias de nuevo. El uso compartido de archivos: activado, compartir archivos usando smb ya está habilitado. Siempre que se concede una conexión exitosa, los usuarios también se numeran allí en esa ventana.
ndasusers

Respuestas:

-3

GKClientProxy: clientForBundleID: 4

ddjskater
fuente
44
¡Bienvenido a Ask Different y gracias por tu respuesta! Siempre estamos buscando soluciones y preferimos respuestas que brinden información como: (1) Cómo cree que la respuesta que proporcionó resuelve el problema y / o por qué puede ser mejor que otras soluciones, (2) Enlaces a información de apoyo y / o productos que estás recomendando. Información adicional como esta puede ayudar al OP y a otros a encontrar información adicional por sí mismos. Consulte Cómo responder para obtener consejos sobre cómo proporcionar respuestas aquí.
Monomeeth