เหตุใดการเชื่อมต่อ mac smb จึงล้มเหลวด้วยการเข้าสู่ระบบจาก cli แต่ทำงานจากตัวค้นหาและบัญชีผู้เยี่ยมชม


8

ดังนั้นฉันมีหนึ่ง mac (Yosemite) แบ่งปันโฟลเดอร์ที่อ่านได้อย่างเดียวสำหรับผู้ใช้หลายคนและบัญชี guest ถูกเปิดใช้งานเพื่อเชื่อมต่อ / เข้าถึงโฟลเดอร์นั้นเพื่อให้ผู้ใช้สามารถดาวน์โหลดอะไรก็ได้ ฉันกำลังเชื่อมต่อกับส่วนแบ่งในฐานะผู้จัดการด้วย 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 ใช้ได้กับทุกกรณีรวมถึง cli ด้วยบัญชีที่ต้องใช้รหัสผ่าน ตัวอย่างเช่น:

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 ผ่านตัวค้นหาโดยใช้โฟลว์ดังนี้:

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

สร้างเอาต์พุตบันทึกเช่นนี้ในคอนโซล:

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

ตอนนี้รายการของโฟลเดอร์แชร์ทั้งหมดมีให้สำหรับผู้ดูแลระบบแน่นอน ดังนั้นการคลิกที่โฟลเดอร์ไฟล์จะสร้างผลลัพธ์ของการบันทึกเพิ่มเติมดังนี้:

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

ไฟล์เมานท์เมาท์และสามารถอ่าน / เขียนโดยผู้ใช้งานแอดมิน

สำหรับการเปรียบเทียบนี่คือบันทึกจาก Console เมื่อพยายามเชื่อมต่อกับทรัพยากรโดยใช้เครื่องมือบรรทัดคำสั่ง pure_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 ความพยายามในการเมาท์ล้มเหลว

บางทีแนวคิดของ osascript นี้เป็นวิธีแก้ปัญหา แต่ก็ไม่ได้ตอบคำถามที่ว่าทำไมแซมบ้าเชื่อมต่อด้วยเครื่องมือค้นหา แต่ไม่ได้ใช้ cli


คุณลองเชื่อมต่อผ่าน AFP และดูว่าใช้งานได้หรือไม่
NoahL

ขอบคุณสำหรับการช่วยเหลือ. แน่นอนว่ามันใช้งานได้โดย AFP ในทุกกรณี ตัวค้นหาบรรทัดคำสั่งและสคริปต์ไม่ว่าจะเป็นแขกหรือรหัสผ่านที่ต้องการผู้ใช้
ndasusers

ลองสิ่งนี้: บนเซิร์ฟเวอร์ไปที่ System Preferences -> Sharing ตรงกลางของหน้าต่างคือวงกลมสีเขียว ถัดจากนั้นมีข้อความว่า "การแชร์ไฟล์: เปิด" ที่อยู่ตรงกลางด้านซ้ายของหน้าต่างกด "ตัวเลือก ... " ในเมนูแบบเลื่อนลงเปิด "แชร์ไฟล์และโฟลเดอร์โดยใช้ smb"
NoahL

แจ้งให้เราทราบว่ามันจะไปอย่างไร
NoahL

ขอขอบคุณอีกครั้ง. การแชร์ไฟล์: เปิด, แชร์ไฟล์โดยใช้ smb ได้เปิดใช้งานแล้ว เมื่อใดก็ตามที่ได้รับการเชื่อมต่อที่ประสบความสำเร็จผู้ใช้จะได้รับหมายเลขในหน้าต่างนั้นเช่นกัน
ndasusers

คำตอบ:


-3

GKClientProxy: clientForBundleID: 4


4
ยินดีต้อนรับสู่ถามที่แตกต่างกันและขอบคุณสำหรับคำตอบของคุณ! เรามักจะมองหาวิธีการแก้ปัญหาและต้องการคำตอบที่ให้ข้อมูลเช่น: (1) คุณคิดว่าคำตอบที่คุณให้ไว้แก้ปัญหาได้อย่างไรและ / หรือทำไมอาจดีกว่าโซลูชันอื่น ๆ (2) ลิงก์ไปยังข้อมูลสนับสนุนและ / หรือผลิตภัณฑ์ที่คุณแนะนำ ข้อมูลเพิ่มเติมเช่นนี้สามารถช่วย OP และอื่น ๆ ค้นหาข้อมูลเพิ่มเติมสำหรับตัวเอง ดูวิธีการตอบสำหรับเคล็ดลับในการให้คำตอบได้ที่นี่
Monomeeth
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.