訪問 Windows NTFS 的 Mac 客戶端在更深的文件夾級別共享重置權限。為什麼?
這是設置:
視窗 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
這是由Apple 所謂的“安全保存”引起的。當 Mac 在 SMB 共享上保存文件時,它實際上將文件寫入共享根目錄中名為*.TemporaryItems的隱藏文件夾,刪除原始文件(如果存在),然後將文件移動到實際文件夾。由於保存的文件是新文件,因此它有一個新所有者,其權限繼承自.TemporaryItems*。
我使用的解決方案很簡單:刪除.TemporaryItems**的寫權限。這似乎禁用了安全保存。
我讀過使用“DSDontWriteNetworkStores”屬性創建com.apple.desktopservices將阻止客戶端創建*.TemporaryItems*,但根據我的經驗,這在 OS X 10.8 及更高版本上不起作用。