Mengapa mac smb connect gagal dengan login dari cli tetapi berfungsi dari finder dan dengan akun tamu?

8

Jadi saya punya satu mac (Yosemite) berbagi folder hanya baca untuk banyak pengguna dan akun tamu diaktifkan untuk me-mount / mengakses folder itu sehingga pengguna dapat mengunduh apa pun. Saya terhubung ke berbagi sebagai manajer dengan mac lain (Sierra). Ini berfungsi ketika saya menjalankan sebagai pengguna tamu dari baris perintah:

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

atau jika saya terhubung dari finder sebagai tamu:

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

Sekarang ada satu akun pengguna admin di mac (Yosemite). Saya ingin me-mount / mengakses ke folder itu dengan hak baca tulis, tetapi semua upaya untuk me-mount folder dengan login gagal jika saya memerlukan nama pengguna dari baris perintah.

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

Namun, jika saya terhubung dengan Finder:

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

Dalam setiap kasus koneksi yang berhasil, saya dapat melihat di bagian server share dari System Properties yang ketika saya mengklik File Sharing: On -> Options ... mengungkapkan

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

Bisakah Anda menebak mengapa koneksi ditolak ketika saya mencoba terhubung dengan seseorang dengan baris perintah menggunakan akun yang memerlukan otentikasi?

Edit

Ya, AFP connect berfungsi dalam setiap kasus termasuk klien dengan akun yang membutuhkan kata sandi. Sebagai contoh:

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

Demi pengujian saya juga mencoba untuk menurunkan aturan otentikasi seseorang untuk berjaga-jaga, tetapi tidak ada efek, bahkan mengirim kata sandi pada plaintext. Dengan demikian:

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

Berikut adalah beberapa file log kalau-kalau ada yang bisa mendapatkan informasi dari mereka tentang masalah ini. (Maaf memposting log di luar, tetapi ada terlalu banyak teks di log yang berhasil.)

Pertama, log Klien untuk menghubungkan ke MacBook-Pro.local melalui SMB melalui Finder menggunakan aliran seperti ini:

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

Menghasilkan keluaran log seperti ini di konsol:

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

Sekarang daftar semua folder berbagi tersedia untuk admin, tentu saja. Jadi mengklik folder Files menghasilkan lebih banyak log output seperti:

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

File folder mount dan dapat dibaca / ditulis oleh pengguna admin

Sebagai perbandingan, berikut adalah log dari Konsol saat mencoba menyambung ke sumber daya menggunakan alat baris perintah murni 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

WORKAROUND

Saya menemukan potongan AppleScript ini berfungsi dari baris perintah.

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

Ini akan meluncurkan jendela konfirmasi dengan isian kata sandi diisi. Namun, itu membutuhkan memasukkan kata sandi dalam teks yang jelas. Jelas, itu juga dapat dilakukan tanpa kata sandi dan mengetiknya setiap waktu.

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

Jadi saya mencoba menyimpan kata sandi. Setelah mencentang kotak untuk menyimpan login ke gantungan kunci, perintah yang sama berhasil tanpa memiliki kata sandi di cleartext, tetapi masih menyajikan jendela konfirmasi dengan kotak Kata Sandi diisi dan kotak "Ingat kata sandi" juga dicentang.

Setelah kata sandi disimpan, masih tidak berlaku untuk koneksi mount_smbfs. Upaya untuk memasang gagal.

Mungkin ide skrip ini merupakan solusi, tetapi tidak menjawab pertanyaan mengapa samba terhubung oleh finder tetapi tidak saat menggunakan cli.

ndasusers
sumber
Bisakah Anda mencoba menghubungkan melalui AFP dan melihat apakah itu berhasil?
NoahL
Terima kasih telah membantu. Ini pasti bekerja oleh AFP dalam semua kasus. Finder, baris perintah dan dengan skrip apakah itu tamu atau kata sandi yang membutuhkan pengguna.
ndasusers
coba ini: di server, buka System Preferences -> Sharing. Di tengah jendela adalah lingkaran hijau. Di sebelahnya tertulis "file sharing: on" di kiri tengah jendela, tekan "options ...". Dalam drop down, nyalakan "berbagi file dan folder menggunakan seseorang"
NoahL
Biarkan saya tahu bagaimana kelanjutannya
NoahL
Terima kasih lagi. Berbagi file: aktif, berbagi file menggunakan seseorang sudah diaktifkan. Setiap kali koneksi yang berhasil diberikan, pengguna juga diberi nomor di jendela itu.
ndasusers

Jawaban:

-3

GKClientProxy: clientForBundleID: 4

ddjskater
sumber
4
Selamat Datang di Tanya Berbeda dan terima kasih atas jawaban Anda! Kami selalu mencari solusi dan lebih suka jawaban yang memberikan info seperti: (1) Bagaimana menurut Anda jawaban yang Anda berikan memecahkan masalah dan / atau mengapa itu mungkin lebih baik daripada solusi lain, (2) Tautan ke informasi pendukung dan / atau produk yang Anda rekomendasikan. Info tambahan seperti ini dapat membantu OP, dan lainnya, menemukan info tambahan untuk diri mereka sendiri. Lihat Cara Menjawab untuk kiat menyediakan jawaban di sini.
Monomeeth