如果使用者無法編輯或認證 macOS 託管的 SMB 上的檔案
你可能需要確認使用者的伺服器資料、連線和目錄詳情,或者調整存取權。
本文旨在供企業和教育系統管理者參考。
核實伺服器資料
確保使用者名稱、密碼以及主機名稱或伺服器 IP 位址正確無誤。
與伺服器綁定相同目錄
如果 macOS 伺服器正執行 Open Directory,或綁定至 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
確認共享項目存取權
確認使用者能以群組或個人使用者身分,存取共用偏好設定中的最少一個共享項目。
檢查讀取/寫入 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