如果用户无法编辑或认证 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/ GeneratedUID

  3. 将用户添加到 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

发布日期: