如果使用者無法編輯或認證 macOS 託管的 SMB 上的檔案

你可能需要確認使用者的伺服器資料、連線和目錄詳情,或者調整存取權。

本文旨在供企業和教育系統管理者參考。

核實伺服器資料

確保使用者名稱、密碼以及主機名稱或伺服器 IP 位址正確無誤。

與伺服器綁定相同目錄

如果 macOS 伺服器正執行 Open Directory,或綁定至 Open Directory 或 Active Directory,請為同一目錄伺服器完成經驗證的綁定,讓用戶端使用 Kerberos 和工作階段簽署。使用 Kerberos 驗證時,你亦需要使用 DNS 註明伺服器。

在 Open Directory 啟用 NTLMv2

如果你在 Open Directory,但用戶端無法綁定 Open Directory 主版,則可能需要啟用 NTLMv2。

  1. 使用以下終端機指令,找出 Open Directory 主版啟用了哪些認證機制:
    dscl /LDAPv3/127.0.0.1 -read /config/dirserv apple-enabled-auth-mech
  2. 輸入目錄管理員密碼。如有需要,你可以重設 Open Directory 管理員密碼
  3. 在 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 伺服器

  1. 在 SMB 伺服器執行以下終端機指令,查看是否只有特定使用者才能存取:
    dscl . read /Groups/com.apple.access_smb
  2. 找出使用者的 GUID:
    dscl /Search read /Users/<username> GeneratedUID
  3. 將使用者加入 SMB 服務存取權控制列表 (SACL):
    sudo dscl /Local/Default append Groups/com.apple.access_smb GroupMembership <username>
    sudo dscl /Local/Default append Groups/com.apple.access_smb GroupMembers <guid>
    

如想移除 SACL,請使用以下終端機指令:

sudo dscl /Local/Default delete /Groups/com.apple.access_smb

確認共享項目存取權

確認使用者能以群組或個人使用者身分,存取共用偏好設定中的最少一個共享項目。 

檢查讀取/寫入 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
發佈日期: