macOS でホストされている SMB 上のファイルをユーザが編集または認証できない場合
ユーザのサーバ情報、接続状況、ディレクトリの詳細情報の確認や、アクセス権の調整が必要になることが考えられます。
この記事は、企業や教育機関のシステム管理者を読者として想定しています。
サーバ情報を確認する
ユーザが正しいユーザ名、パスワード、サーバのホスト名や IP アドレスを把握していることを確認してください。
サーバと同じディレクトリにバインドする
macOS サーバで Open Directory を実行している場合や、macOS サーバが Open Directory または Active Directory にバインドされている場合は、同じディレクトリサーバへの認証バインドを実行してください。そうしておけば、クライアントが Kerberos やセッション署名を使えるようになります。Kerberos 認証では、DNS を使ってサーバを指定する必要もあります。
Open Directory で NTLMv2 を有効にする
Open Directory を利用していて、クライアントが Open Directory マスターにバインドできない場合は、必要に応じて NTLMv2 を有効にしてください。
以下のターミナルコマンドを使って、Open Directory マスターで有効になっている認証方式を確認します。
dscl /LDAPv3/127.0.0.1 -read /config/dirserv apple-enabled-auth-mech
ディレクトリ管理者のパスワードを入力します。必要に応じて、Open Directory 管理者のパスワードをリセットできます。
Server.app で Open Directory を停止し、再起動します。
SMB-NTLMv2 が結果に表示されない場合は、以下のターミナルコマンドを使って手動で追加できます。
dscl -u diradmin -p /LDAPv3/127.0.0.1 -append /Config/dirserv apple-enabled-auth-mech SMB-NTLMv2
ユーザが SMB サーバにアクセスできるか確認する
SMB サーバで以下のターミナルコマンドを実行し、アクセスが特定のユーザに制限されているかどうかを確かめます。
dscl . read /Groups/com.apple.access_smb
ユーザの GUID を確認します。
dscl /Search read /Users/ GeneratedUID
そのユーザを SMB サービスアクセス制御リスト (SACL) に追加します。
sudo dscl /Local/Default append Groups/com.apple.access_smb GroupMembership sudo dscl /Local/Default append Groups/com.apple.access_smb GroupMembers
SACL を削除したい場合は、以下のターミナルコマンドを使います。
sudo dscl /Local/Default delete /Groups/com.apple.access_smb
共有へのアクセスを確認する
ユーザが少なくとも 1 つの共有にグループ単位で、または個人ユーザとしてアクセスできるようになっているか共有設定を調べて確認します。
読み込み/書き込み ACL を確認する
ユーザがアクセス権を持っている共有に書き込めない場合は、共有へのゲストアクセスを一時的に無効にします。これで、ゲストとして接続していないか確認できます。ゲストアクセスは、ファイル共有の詳細オプションで設定されています。
ユーザが新しいファイルを追加できるのに、ほかのユーザが作成したファイルを編集できない場合は、グループレベルのアクセス制御リスト (ACL) を作成する必要があると考えられます。ACL を追加するには、以下のコマンドラインを使います。グループ名と共有ポイントへのパスは実際の値と置き換えてください。
sudo chmod -R +a "group:YourGroupName allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Volumes/volumename/path/to/share