Mac smb接続がcliからのログインで失敗するが、finderおよびguestアカウントで機能するのはなぜですか?


8

したがって、1つのMac(Yosemite)で多くのユーザーに対して読み取り専用のフォルダーを共有し、ゲストアカウントがそのフォルダーをマウント/アクセスできるようにして、ユーザーが何でもダウンロードできるようにします。別のMac(Sierra)でマネージャーとして共有に接続しています。コマンドラインからゲストユーザーとして実行すると機能します。

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)に管理者ユーザーアカウントが1つあります。読み取り/書き込み特権でそのフォルダーにマウント/アクセスしたいのですが、コマンドラインからユーザー名を要求すると、ログインでフォルダーをマウントしようとしても失敗します。

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

誰かがこの問題に関する情報を入手できるように、いくつかのログファイルを次に示します。(ログをオフサイトに投稿して申し訳ありませんが、成功したログにはテキストが多すぎます。)

まず、次のようなフローを使用して、Finderを介してSMB経由でMacBook-Pro.localに接続するクライアントログ:

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

コンソールに次のようなログ出力を生成します。

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

これで、すべての共有フォルダのリストを管理者が利用できるようになりました。したがって、Filesフォルダをクリックすると、次のようなより多くのログ出力が生成されます。

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

ファイルフォルダーがマウントされ、管理者ユーザーによる読み取り/書き込みが可能

比較のために、純粋なコマンドラインツール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接続には適用されませんでした。マウントに失敗しました。

おそらく、このosascriptのアイデアは回避策ですが、Sambaがファインダーによって接続するが、cliの使用中には接続しない理由についての質問には答えません。


AFP経由で接続してみて、それが機能するかどうかを確認できますか?
NoahL 2016年

助けてくれてありがとう。それは確かにすべてのケースでAFPによって動作します。Finder、コマンドライン、およびスクリプトを使用して、それがゲストかパスワードを必要とするユーザーかどうか。
ndasusers 2016年

これを試してください:サーバーで、システム環境設定->共有に移動します。ウィンドウの中央には緑の円があります。その横には、ウィンドウの左中央に「ファイル共有:オン」と表示され、「オプション...」をクリックします。ドロップダウンで、[smbを使用してファイルとフォルダを共有する]をオンにします
NoahL

それがどうなるか教えてください
NoahL 2016年

ありがとうございました。ファイル共有:オン、smbを使用したファイル共有はすでに有効になっています。正常な接続が許可されると、そのウィンドウにもユーザーの番号が付けられます。
ndasusers

回答:


-3

GKClientProxy:clientForBundleID:4


4
Ask Differentへようこそ。回答に感謝します。私たちは常に解決策を探しており、次のような情報を提供する回答を優先しています:(1)提供した回答が問題を解決する方法および/または他の解決策よりも優れている理由(2)サポート情報へのリンクおよび/またはあなたが推薦している製品。このような追加情報は、OPや他の人が自分で追加情報を見つけるのに役立ちます。ここで回答を提供するためのヒントについては、回答方法を参照してください。
Monomeeth
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.