Mac 客户端访问 Windows NTFS 共享时会重置更深层文件夹的权限。为什么?

Mac 客户端访问 Windows NTFS 共享时会重置更深层文件夹的权限。为什么?

设置如下:

  • Windows 2008 服务器
  • c:\share具有以下权限的文件夹(我认为,读取、读/写此时并不重要):
    • 用户1
    • 用户2
  • c:\share\add_user3具有以下权限的文件夹:
    • User3(在此文件夹级别明确添加)
    • 用户 1(继承自c:\share
    • 用户2(继承自c:\share
  • share要求c:\share服务器本地管理员具有读/写权限的共享
  • 混合客户端环境:
    • Windows XP 客户端
    • Windows 7 客户端
    • Mac 客户端(OSX v10.8.4)

Windows 客户端行为(XP 和 Windows 7):

  • 用户创建文件c:\share\test.txt
  • 该文件的有效权限从文件夹继承:
    • 用户1
    • 用户2
  • 用户创建文件c:\share\add_user3\test.txt
  • 该文件的有效权限从文件夹继承:
    • 用户1
    • 用户2
    • 用户3

Mac 客户端行为:

  • 用户创建文件c:\share\test.txt
  • 该文件的有效权限:
    • 用户1
    • 用户2
  • 用户创建文件或用户编辑在 Windows 客户端上创建的c:\share\add_user3\test.txt现有文件c:\share\add_user3\test.txt
  • 该文件的有效权限变为:
    • 用户1
    • 用户2

就像 Mac 客户端在共享文件夹级别 ( c:\share) 上获取 NTFS 权限并将其直接应用于c:\share\add_user3\test.txt。 的权限 c:\share\add_user3未被遵守/继承。

Mac 客户端用户都是服务器上的本地管理员(因此拥有完全控制权)。从操作角度来看,这是必要的,因为所有客户端(甚至 Mac 用户)都需要以管理身份(主要是 IIS 管理员)访问服务器。

我主要使用 Windows,所以看起来 Mac 是“错误的”,但也许这只是不同的行为(即这里没有违反“标准”)。有什么想法为什么会发生这种情况?而且,考虑到我们希望权限像 Windows 客户端一样运行,有什么想法可以在 Mac 端强制执行吗?

后续答案

  • 至于不同的编辑器,已尝试使用 XCode 和 TextEdit。两者的行为相同。
  • 在与一名用户进行测试后不是在本地管理员中,似乎已应用/保留了适当的权限,除了对于以下行为:
    • 当用户从 Windows 计算机创建文件时,文件所有者将设置为相关用户的帐户
    • 当用户从 Mac 创建文件时,文件所有者被设置为MACHINE\Administrators

答案1

这是由某事引起的苹果称“安全保存”“。当 Mac 在 SMB 共享上保存文件时,它实际上会将文件写入名为.TemporaryItems在共享的根目录中,删除原始文件(如果存在),然后将文件移动到实际文件夹。由于保存的文件是新的,因此它有一个新的所有者,其权限继承自.TemporaryItems

我使用的解决方案很简单:删除写入权限.TemporaryItems。这似乎禁用了安全保存。

我读过创造com.apple.desktopservices使用“DSDontWriteNetworkStores”属性将阻止客户创建.TemporaryItems,但根据我的经验,这在 OS X 10.8 及更新版本上不起作用。

相关内容