Чому mac smb підключення не вдається з логіном із cli, але працює з Finder та з обліковим записом гостя?


8

Тож у мене є один mac (Yosemite), який ділиться папкою, прочитаною лише для багатьох користувачів, і гостьовий обліковий запис увімкнено для монтажу / доступу до цієї папки, щоб користувачі могли завантажувати що завгодно. Я підключаюсь до акції як менеджер з іншим mac (Сьєрра). Він працює, коли я запускаю як гостьовий користувач із командного рядка:

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

або якщо я підключаюсь із пошуку, як гість:

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

Зараз є один обліковий запис адміністратора на mac (Yosemite). Я хочу приєднати / отримати доступ до цієї папки з привілеєм читання запису, але всі спроби встановити папку з логіном не вдаються, якщо мені потрібне ім'я користувача з командного рядка.

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

Однак якщо я з'єднуюся з Finder:

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

У кожному випадку успішного з'єднання я бачу в розділі спільного використання сервера Властивості системи, що коли я натискаю Обмін файлами: Увімкнено -> Параметри ...

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

Чи можете ви здогадатися, чому з'єднання відхилено, коли я намагаюся з'єднатись за допомогою smb з командним рядком за допомогою облікового запису, який вимагає автентифікації?

Редагувати

Так, підключення AFP працює в будь-якому випадку, включаючи кліп із обліковим записом, який вимагає пароля. Наприклад:

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

Заради тестування я також намагався знизити правила аутентифікації smb на всякий випадок, але ефекту не було, навіть надсилаючи пароль на простому тексті. Як такий:

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

Ось декілька файлів журналів, якщо хтось може отримати від них будь-яку інформацію про цю проблему. (Вибачте, що публікуєте журнали за межами сайту, але в успішних журналах було занадто багато тексту.)

По-перше, клієнтський журнал підключення до MacBook-Pro.local через SMB через Finder, використовуючи такий потік:

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

Виробляє такий запис журналу на консолі:

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

Тепер список усіх папок спільного доступу доступний адміністратору, звичайно. Отже, натиснувши папку Файли, ви отримаєте більше журналу, наприклад:

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

Файли кріпляться і можуть читати / писати користувачем адміністратора

Для порівняння, ось журнал Console при спробі підключення до ресурсу за допомогою чистого інструменту командного рядка 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

РОБОТА

Я виявив, що цей фрагмент AppleScript працює з командного рядка.

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

Він запустить вікно підтвердження із заповненим полем пароля. Однак потрібно ввести пароль чітким текстом. Очевидно, це також можна зробити без пароля і вводити його кожен раз.

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

Тому я спробував зберегти пароль. Після відмітки поля, щоб зберегти логін у брелок, та сама команда досягає успіху, не маючи пароль у прозорому тексті, але все ще відображає вікно підтвердження із заповненим полем Пароль і також поставлено галочку "Запам'ятати пароль".

Зберегши пароль, все ще не застосовується до з'єднання mount_smbfs. Спроба встановити не вдалася.

Можливо, ця ідея про сценарій є обхідною задачею, але вона не відповідає на питання, чому самба з'єднується шукачем, але не використовує cli.


Чи можете ви спробувати підключитися через AFP і побачити, чи працює це?
— NoahL

Дякуємо за допомогу. Це, безумовно, працює AFP у всіх випадках. Finder, командний рядок та сценарій, будь то гостьовий або потрібний користувачеві пароль.
— ndasusers

спробуйте це: на сервері перейдіть до Налаштування системи -> Обмін. У центрі вікна - зелене коло. Поруч із ним написано "Обмін файлами: увімкнено" у середній лівій частині вікна, натисніть "Параметри ...". У спадному меню ввімкніть "обмінюватися файлами та папками за допомогою smb"
— NoahL

Дозвольте мені знати, як це відбувається
— NoahL

Ще раз дякую вам. Обмін файлами: увімкнено, обмін файлами за допомогою smb вже увімкнено. Щоразу, коли успішне з'єднання надано, користувачі також нумеруються там у цьому вікні.
— ndasusers

Відповіді:


-3

GKClientProxy: clientForBundleID: 4


4
Ласкаво просимо до спитання різних і дякую за вашу відповідь! Ми завжди шукаємо рішення та надаємо перевагу відповідям, які містять інформацію, таку як: (1) Як ви вважаєте, що надана вами відповідь вирішує проблему та / або чому вона може бути кращою за інші рішення, (2) Посилання на підтримку інформації та / або продукти, які ви рекомендуєте. Додаткова інформація, така як ця, може допомогти ОП та іншим знайти додаткову інформацію для себе. Див. Як відповісти, щоб отримати поради щодо надання відповідей тут.
— Мономет
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.