Por que o mac smb connect falha com o login do cli, mas funciona no localizador e na conta de convidado?


8

Então, eu tenho um mac (Yosemite) compartilhando uma pasta somente leitura para muitos usuários e a conta de convidado está habilitada para montar / acessar essa pasta para que os usuários possam baixar o que quer que seja. Estou me conectando ao compartilhamento como gerente com outro mac (Sierra). Funciona quando executo como usuário convidado na linha de comando:

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

ou se eu conectar do localizador como convidado:

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

Agora, há uma conta de usuário administrador no mac (Yosemite). Quero montar / acessar essa pasta com privilégio de leitura e gravação, mas todas as tentativas de montar a pasta com um logon falharão se eu exigir o nome de usuário na linha de comando.

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

No entanto, se eu me conectar ao Finder:

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

Em todos os casos de conexões bem-sucedidas, posso ver na seção compartilhamento de servidor das Propriedades do Sistema que, quando clico em Compartilhamento de Arquivos: Ativado -> Opções ... revela

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

Você consegue adivinhar por que a conexão é rejeitada quando tento conectar por smb à linha de comando usando a conta que requer autenticação?

Editar

Sim, o AFP connect funciona em todos os casos, incluindo o CLI com uma conta que exige uma senha. Por exemplo:

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

Para fins de teste, também tentei reduzir as regras de autenticação smb, mas não houve efeito, mesmo enviando senha em texto sem formatação. Assim sendo:

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

Aqui estão alguns arquivos de log, caso alguém possa obter informações sobre esse problema. (Desculpe postar os logs fora do local, mas havia muito texto nos logs bem-sucedidos.)

Primeiro, o log do cliente para conectar-se ao MacBook-Pro.local via SMB através do Finder usando o fluxo da seguinte forma:

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

Produz saída de log como esta no console:

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

Agora, a lista de todas as pastas compartilhadas está disponível para o administrador, é claro. Portanto, clicar na pasta Arquivos produz mais saída de log da seguinte forma:

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

A pasta Arquivos é montada e pode ser lida / gravada pelo usuário administrador

Para comparação, aqui está um log do Console ao tentar conectar-se ao recurso usando a ferramenta de linha de comando 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

GAMBIARRA

Eu achei que esse trecho de AppleScript funciona na linha de comando.

osascript -e 'tell application "Finder" to mount volume "smb://admin:password@macbook-pro.local/Files"'

Ele abrirá uma janela de confirmação com o campo de senha preenchido. No entanto, é necessário colocar a senha em texto não criptografado. Obviamente, isso também pode ser feito sem a senha e digite-a sempre.

osascript -e 'tell application "Finder" to mount volume "smb://admin@macbook-pro.local/Files"'

Então, eu tentei salvar a senha. Depois de marcar a caixa para salvar o logon no chaveiro, o mesmo comando é bem-sucedido sem ter a senha no texto não criptografado, mas ainda apresenta a janela de confirmação com a caixa Senha preenchida e a caixa "Lembrar senha" também marcou.

Tendo a senha salva, ainda não se aplicava à conexão mount_smbfs. A tentativa de montar falhou.

Talvez essa ideia de osascript seja uma solução alternativa, mas não responde à pergunta por que o samba se conecta pelo localizador, mas não enquanto estiver usando o cli.


Você pode tentar se conectar via AFP e ver se isso funciona?
NoahL

Obrigado por ajudar. Certamente funciona pela AFP em todos os casos. Localizador, linha de comando e com script, seja convidado ou senha, precisando de usuário.
Ndsusers

tente o seguinte: no servidor, vá para Preferências do Sistema -> Compartilhamento. No centro da janela, há um círculo verde. Ao lado, ele diz "compartilhamento de arquivos: ativado" no meio esquerdo da janela, clique em "opções ...". No menu suspenso, ative "compartilhar arquivos e pastas usando smb"
NoahL 11/10/16

Deixe-me saber como isso vai
NoahL

Mais uma vez obrigado. O compartilhamento de arquivos: ativado, compartilhar arquivos usando smb já está ativado. Sempre que uma conexão bem-sucedida é concedida, os usuários também são numerados nessa janela.
Ndsusers # 11/16

Respostas:


-3

GKClientProxy: clientForBundleID: 4


4
Bem-vindo ao Ask Different e obrigado pela sua resposta! Estamos sempre procurando soluções e preferimos respostas que forneçam informações como: (1) como você acha que a resposta fornecida resolve o problema e / ou por que pode ser melhor do que outras soluções, (2) links para informações de suporte e / ou produtos que você está recomendando. Informações adicionais como essa podem ajudar o OP e outras pessoas a encontrar informações adicionais por si mesmas. Consulte Como responder para obter dicas sobre como fornecer respostas aqui.
Monomeeth
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.