Tại sao mac smb kết nối thất bại với đăng nhập từ cli nhưng hoạt động từ công cụ tìm và tài khoản khách?


8

Vì vậy, tôi có một mac (Yosemite) chia sẻ một thư mục chỉ đọc cho nhiều người dùng và tài khoản khách được kích hoạt để gắn kết / truy cập thư mục đó để người dùng có thể tải xuống bất cứ điều gì. Tôi đang kết nối để chia sẻ với tư cách là người quản lý với một máy mac (Sierra) khác. Nó hoạt động khi tôi chạy với tư cách là người dùng khách từ dòng lệnh:

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

hoặc nếu tôi kết nối từ người tìm với tư cách là khách:

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

Bây giờ có một tài khoản người dùng quản trị trên mac (Yosemite). Tôi muốn gắn kết / truy cập vào thư mục đó với đặc quyền đọc ghi, nhưng tất cả đều cố gắng gắn kết thư mục với thông tin đăng nhập thất bại nếu tôi yêu cầu tên người dùng từ dòng lệnh.

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

Tuy nhiên, nếu tôi kết nối với Finder:

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

Trong mọi trường hợp kết nối thành công, tôi có thể thấy trong phần chia sẻ máy chủ của Thuộc tính hệ thống mà khi tôi nhấp vào Chia sẻ tệp: Bật -> Tùy chọn ... sẽ hiển thị

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

Bạn có thể đoán tại sao kết nối bị từ chối khi tôi cố gắng kết nối bằng smb với dòng lệnh bằng tài khoản yêu cầu xác thực không?

Biên tập

Có, kết nối AFP hoạt động trong mọi trường hợp bao gồm cả cli với tài khoản yêu cầu mật khẩu. Ví dụ:

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

Để kiểm tra, tôi cũng đã cố gắng hạ thấp các quy tắc xác thực smb chỉ trong trường hợp, nhưng không có hiệu lực, thậm chí gửi mật khẩu trên bản rõ. Như vậy:

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

Dưới đây là một số tệp nhật ký trong trường hợp bất kỳ ai cũng có thể nhận được bất kỳ thông tin nào từ họ về vấn đề này. (Xin lỗi để đăng nhật ký ngoại vi, nhưng có quá nhiều văn bản trong nhật ký thành công.)

Đầu tiên, Nhật ký khách hàng kết nối với MacBook-Pro.local qua SMB thông qua Finder bằng cách sử dụng luồng như vậy:

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

Tạo đầu ra nhật ký như thế này trong bảng điều khiển:

http://paste.ubfox.com/23308183/

Bây giờ danh sách tất cả các thư mục chia sẻ có sẵn cho quản trị viên tất nhiên. Vì vậy, nhấp vào thư mục Tệp sẽ tạo ra một bản ghi nhật ký nhiều hơn như vậy:

http://paste.ubfox.com/23308186/

Thư mục tập tin gắn kết và có thể được đọc / ghi bởi người dùng quản trị

Để so sánh, đây là nhật ký từ Bảng điều khiển khi cố gắng kết nối với tài nguyên bằng công cụ dòng lệnh thuần túy 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

LÀM VIỆC

Tôi tìm thấy đoạn mã AppleScript này hoạt động từ dòng lệnh.

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

Nó sẽ khởi chạy một cửa sổ xác nhận với trường mật khẩu được điền vào. Tuy nhiên, nó yêu cầu đặt mật khẩu ở dạng văn bản rõ ràng. Rõ ràng, nó cũng có thể được thực hiện mà không cần mật khẩu và gõ nó mỗi lần.

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

Vì vậy, tôi đã cố gắng lưu mật khẩu. Sau khi đánh dấu vào ô để lưu thông tin đăng nhập vào móc khóa, lệnh tương tự thành công mà không cần có mật khẩu trong văn bản rõ ràng, nhưng vẫn hiển thị cửa sổ xác nhận với hộp Mật khẩu được điền và hộp "Ghi nhớ mật khẩu" cũng được đánh dấu.

Có mật khẩu được lưu, vẫn không áp dụng cho kết nối mount_smbfs. Nỗ lực gắn kết thất bại.

Có lẽ ý tưởng osascript này là một cách giải quyết, nhưng nó không trả lời câu hỏi tại sao samba kết nối bởi công cụ tìm mà không sử dụng cli.


Bạn có thể thử kết nối qua AFP và xem nếu nó hoạt động?

Cảm ơn đã giúp đỡ. Nó chắc chắn hoạt động bởi AFP trong mọi trường hợp. Trình tìm kiếm, dòng lệnh và với tập lệnh cho dù đó là khách hoặc mật khẩu cần người dùng.
ndasusers

hãy thử điều này: trên máy chủ, đi đến Tùy chọn hệ thống -> Chia sẻ. Ở trung tâm của cửa sổ là một vòng tròn màu xanh lá cây. Bên cạnh nó có ghi "chia sẻ tệp: bật" ở giữa bên trái của cửa sổ, nhấn "tùy chọn ...". Trong trình đơn thả xuống, bật "chia sẻ tệp và thư mục bằng smb"
NoahL

Hãy cho tôi biết điều đó diễn ra như thế nào
NoahL

Cám ơn bạn một lần nữa. Chia sẻ tệp: bật, chia sẻ tệp bằng smb đã được bật. Bất cứ khi nào kết nối thành công được cấp, người dùng cũng được đánh số ở đó trong cửa sổ đó.
ndasusers

Câu trả lời:


-3

GKClientProxy: clientForBundleID: 4


4
Chào mừng bạn đến hỏi khác nhau và cảm ơn câu trả lời của bạn! Chúng tôi luôn tìm kiếm giải pháp và thích các câu trả lời cung cấp thông tin như: (1) Cách bạn nghĩ câu trả lời bạn cung cấp giải quyết vấn đề và / hoặc tại sao nó có thể tốt hơn các giải pháp khác, (2) Liên kết đến thông tin hỗ trợ và / hoặc sản phẩm bạn đang giới thiệu. Thông tin bổ sung như thế này có thể giúp OP và những người khác tìm thấy thông tin bổ sung cho chính họ. Xem Cách trả lời để biết các mẹo cung cấp câu trả lời tại đây.
Monomeeth
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.