如果使用者無法編輯或驗證 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. 在「伺服器」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
發佈日期: