web-dev-qa-db-ja.com

Windows NTFSにアクセスするMacクライアントは、より深いフォルダレベルでリセット権限を共有します。どうして?

設定は次のとおりです。

  • Windows 2008サーバー
  • c:\share次の権限を持つフォルダ(この時点では、読み取り、読み取り/書き込みは重要ではないと思います):
    • ユーザー1
    • User2
  • c:\share\add_user3フォルダー、次の権限:
    • User3(このフォルダーレベルで明示的に追加)
    • User1(c:\shareから継承)
    • User2(c:\shareから継承)
  • サーバーローカル管理者の読み取り/書き込み権限を持つc:\shareshareと呼ばれる共有
  • 混合クライアント環境:
    • Windows XPクライアント
    • Windows 7クライアント
    • Macクライアント(OSX v10.8.4)

Windowsクライアントの動作(XPとWindows7の両方):

  • ユーザーがファイルを作成c:\share\test.txt
  • そのファイルに対する有効なアクセス許可は、フォルダーから継承されます。
    • ユーザー1
    • User2
  • ユーザーがファイルを作成しますc:\share\add_user3\test.txt
  • そのファイルに対する有効なアクセス許可は、フォルダーから継承されます。
    • ユーザー1
    • User2
    • User3

Macクライアントの動作:

  • ユーザーがファイルを作成しますc:\share\test.txt
  • そのファイルに対する有効な権限:
    • ユーザー1
    • User2
  • ユーザーがファイルを作成するc:\share\add_user3\test.txt ORユーザーがWindowsクライアントで作成された既存のファイルc:\share\add_user3\test.txtを編集する
  • そのファイルに対する有効な権限は次のようになります:
    • ユーザー1
    • User2

Macクライアントが共有フォルダレベル(c:\share)でNTFSアクセス許可を取得し、それをc:\share\add_user3\test.txtに直接適用しているようです。 c:\share\add_user3からのアクセス許可は尊重/継承されていません。

Macクライアントユーザーはすべてサーバー上のローカル管理者です(したがって、完全に制御できます)。これは、すべてのクライアント(Macユーザーも含む)が管理者として(主にIIS管理者)サーバーにアクセスする必要があるため、運用の観点から必要です。

私は主にWindowsの男なので、Macは「間違っている」ようですが、おそらくこれは動作が異なるだけです(つまり、違反されている「標準」はありません)。なぜこれが起こっているのか考えはありますか?そして、パーミッションをWindowsクライアントのように動作させたいとすると、Mac側でこれを強制する方法について何かアイデアはありますか?

フォローアップの回答

  • 別のエディターに関しては、これはXCodeとTextEditで試されました。両方で同じ動作。
  • ローカル管理者でnotであるユーザーをテストした後、適切な権限が適用/保持されているように見えますexcept以下の動作:
    • ユーザーがWindowsマシンからファイルを作成すると、ファイルの所有者は問題のユーザーのアカウントに設定されます
    • ユーザーがMacからファイルを作成すると、ファイルの所有者はMACHINE\Administratorsに設定されます。
4
Chris Simmons

これは何かが原因です Appleは「安全な保存」と呼んでいます "。 MacがSMB共有にファイルを保存すると、実際には、共有のルートにあるという名前の隠しフォルダにファイルが書き込まれます)。TemporaryItems 、元のファイル(存在する場合)を削除してから、ファイルを実際のフォルダーに移動します。保存されたファイルは新しいため、。TemporaryItems

私が使用している解決策は単純です:。TemporaryItemsの書き込み権限を削除します。これは安全な保存を無効にするようです。

私は "DSDontWriteNetworkStores"属性を指定したcom.Apple.desktopservicesの作成 がクライアントの作成を停止することを読みました。 TemporaryItemsですが、私の経験では、これはOS X10.8以降では機能しません。

3
Jason