如果使用者無法編輯或驗證 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 管理者密碼。
在「伺服器」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