NTFS Move / Copyの設計上の問題を回避する方法は?


31

ファイルサーバーのアクセス許可を扱った人なら誰でも知っているように、NTFSには、移動/コピーの問題として知られる興味深い設計機能/欠陥があります。

このMS KBの記事で説明されているように、フォルダーが移動され、ソースと宛先が同じNTFSボリューム上にある場合、フォルダーまたはファイルのアクセス許可は親から自動的に継承されません。フォルダーがコピーされた場合、またはソースと宛先が異なるボリュームにある場合、許可は継承されます。

以下に簡単な例を示します。

「技術者」と「マネージャー」と呼ばれる同じNTFSボリュームに2つの共有フォルダーがあります。技術者グループには技術者フォルダーへのRWアクセス権があり、管理者グループには「マネージャー」フォルダーへのRWアクセス権があります。両方にアクセスできるユーザーがいて、サブフォルダーを「マネージャー」フォルダーから「技術者」フォルダーに移動しても、移動されたフォルダーには「マネージャー」グループのユーザーのみがアクセスできます。「技術者」グループは、「技術者」フォルダの下にあり、上部から権限を継承する必要があるにもかかわらず、サブフォルダにアクセスできません。

想像できるように、これにより、これらのエンドユーザーの問題を解決するためのサポートコール、チケット、無駄なサイクルが発生します。もちろん、ユーザーが異なるセキュリティで保護されたフォルダー/エリア間でフォルダーを頻繁に移動する場合、最終的にアクセス権のネズミの巣ができます同じボリューム。

質問は次のとおりです。

このNTFS設計の欠陥を回避する最良の方法は何ですか?また、環境でどのように処理しますか?

リンクされたナレッジベースの記事では、Windows Explorerのデフォルトの動作を変更するためのレジストリキーについて説明していますが、それらはクライアント側であり、ユーザーが権限を変更する必要があることを必要としますファイルサーバーのアクセス許可(およびシステム管理者としての健全性)を制御したい。


2
マネージャー/技術者の例は単に欠陥を説明するためのものですが、場合によってはそれが望ましい動作です:誰かが誤ってマネージャーから技術者にフォルダーを移動した場合、おそらく技術者がアクセスできないようにする必要がありますそれ。
区-モニカの復職

2
これは実際には欠陥ではなく、ファイルのアクセス許可が機能する方法です。NTFSのリリース以降、文書化されています。ファイルのアクセス許可を使用せず、共有アクセス許可のみを使用してアクセスを制御することを推奨している人はいないと思います。これは、Microsoftファイルサーバーの非常に基本的なセキュリティに反します。同じボリューム上のフォルダ/ファイルを移動しても継承されないのは、フォルダ/ファイルが実際にディスク上で移動するわけではなく、表示されるポインタだけが変化するためです。
マイケルブラウン

回答:


12

私のアプローチは、ファイル/ディレクトリレベルのファイルアクセス許可を使用しないことです。ファイル共有レベルのアクセス許可を使用し、サーバーファイルシステムのデータドライブ全体をEveryoneフルコントロール(これは無意味になります)に設定します。

長年(10以上)にわたって、NTFSアクセス許可はより複雑であり、より多くのエラーにつながることがわかりました。権限が正しく設定されていない場合、または継承が壊れている場合、データを公開し、そのデータを見つけて確認することは困難です。さらに、あなたが言うように移動/コピーの問題にさらされます。

ディレクトリ/ファイルレベルのACLを使用する必要がある場所。健康を定期的にチェックする以外に解決策はありません。


10

まあそれは本当に欠陥ではありません。ファイルを移動するときにアクセス許可を処理するためのこのルールは、NT3.1の少なくともベータ2以降に導入されました(ただし、Windows 2000でのみ追加されたため、明らかに継承ではありません)。これは、Windowsのあらゆる機能と同じくらいよく知られています。私はあなたの見解に多くの同情を持っています。なぜなら、これによって一度も焼かれていない人はほとんどいないからです。しかし、それはシステム管理者がすぐに学ぶものです。

JR


6
このことについて、彼のブログでRaymond Chenと議論をしました。マイクロソフトは、許可を「継承」しているとしてNTFSを「販売」し、その後、鎧のこの特定の不具合が発生するとバックペダルを行います。NTFSは、ファイルの作成時に明示的なACEをファイルに配置することにより、ファイルの作成時にアクセス許可を継承します。私は、ドキュメントやマーケティングの文献がそれらの継承システムについて、それがリアルタイムであるかのように、ドキュメントまたはコードがバグがあるかのように話す限り、それを主張します。いずれかを選択して修正する必要があります。
エヴァンアンダーソン

1
まあそれはトレードオフです。継承がリアルタイムである場合、深いツリーの一番下にあるファイルを開くたびに、OSはツリーを実行して、有効なアクセス許可を確認する必要があります。もちろん、トレードオフは、深いツリーの最上部でアクセス許可を変更する場合、待たされることです!Active Directoryは同じモデルを使用していませんか?
ジョンレニー

ADオブジェクトは、コンテナ間を移動するときに新しい親のアクセス許可を正しく継承します。これは、NTFSでファイル/フォルダを移動するときに予想される「正しい」動作であると主張します。
デビッドアーチャー

3
@renniej:ADは真のリアルタイム継承を使用します。Netwareファイルシステムは、昔からそうでした。MicrosoftがNTFSを実装していれば、NTFSでも実行できたはずです。それは「とられない道」です。私がいらいらしているのは、MicrosoftのドキュメントがNTFSとExplorerが「継承」がリアルタイム(つまり嘘)であるかのように「再生」するということです。私たちにそれをそのまま伝えるか、ドキュメントで動作をジャイブに修正してください!
エヴァンアンダーソン

@renniejエヴァンアンダーソンが言ったように、Netwareは1990年に彼らが王だったときにこれを行いました。この問題は、「可視性リスト」を追跡する別のファイルシステムインデックスを作成することで修正できます。マイクロソフトはこれを行わないことを選択しましたが、将来のWindows Serverリリースでは1つをシムインする可能性があります。
sysadmin1138

6

NT 3.51からNTFSを使用していますが、この「問題」は(ほとんどの人がそうであるように)見てきましたが、それほど問題は発生していません。

  • ある共有ディレクトリから別の共有ディレクトリにファイルを移動する必要がある場合は、常にファイルをコピーするように指示します。「ドラッグするときにCTRLキーを押したままにして、小さな+が表示されていることを確認してください」はよくあるフレーズです。
  • 共有フォルダーの構造は非常に単純であり、作成する共有フォルダーはグループ間をあまり頻繁に行き来しないため、最初からファイルをコピーする可能性が高くなります。
  • 問題は主に「共通」スペースで見られます-誰でも読み書きできるフォルダですが、これらのディレクトリはほとんど寿命が短いため、パージされると問題はなくなります。

4

私が考えることができる回避策:

  • 異なるアクセス許可を持つフォルダーを異なるNTFSボリュームに作成する方法を見つける
  • フォルダを介して実行され、すべてのアクセス許可をトップレベルのアクセス許可と同じにリセットするスケジュールされたタスクを作成します(サポートリクエストの頻度に応じて1時間に1回または1日1回)。これは理想的とは言えませんが、フォルダーに多くのファイルが含まれている場合はさらに多くなりますが、サーバー側のレジストリ修正などの適切な解決策がない場合は問題を解決し続けるでしょう。確認するコマンドは「cacls」と呼ばれ、バッチファイルに追加できます。

免責事項-私はUnixのバックグラウンドから来ました(そして、異なるパーミッションの欠陥を修正するために最後の1つを実装しました-気分が悪いと感じますが、仕事はします)。


+1-マークが与える最初の答えが最良の選択です。それは苦痛だが、それはNTFS 5でこの愚かな設計上の決定を周りに得るためにあなたの最善の方法だ
エヴァンアンダーソン

展開するには:これは、私のSharePointを使用している仲間が「SharePointを使用」と言う場所です!同様に、私のバージョン管理使用バディと文書管理システム使用バディはSubversion、Documentumなどを指し、「それを使用する」と言います。NTFSでのこの設計の選択は非常に大きな問題であり、ネットワークで戦わなければならないときにMicrosoftが独自のソフトウェアを実際に使用しているのではないかと思われます。(マイクロソフトはユーザーと同じ方法でソフトウェアを使用していないことを私に叫びます。実際、「知識労働者」と一緒に会社を満たしてくれるのは素晴らしいことです。)
エヴァンアンダーソン

1
理想的には、すべての共有フォルダを独自のボリュームに分離できることに同意します。実際には、これは大規模な環境(数千の共有フォルダ)では実行できません。また、ファンキージャンクションポイントまたはシンボリックリンクブードゥーがない場合、これは、異なる権限を持つサブフォルダーをネストする機能を失うことを意味します。
デビッドアーチャー

1
@David:共有間でデータを移動すると、コピーと削除が行われます。共有内でデータを移動すると、移動が発生します。各共有フォルダーを、より制限的なアクセス許可を持つサブフォルダーのないアクセス許可階層のルートにすると、問題が軽減されます。まだugいですが。(2200以上の個別の共有フォルダーを備えたW2K3サーバーがあり、パフォーマンスの問題は見られません...)
エヴァンアンダーソン

3

管理者として移動するときは、xcopy / s / e / c / h / r / k / yを使用します。ファイルの所有権とACL以外はすべて、ACLの継承が自動的に開始されることを意味します。しかしものを移動しました。


2
ユーザーは生きていますか?
エヴァンアンダーソン

4
時々疑問に思う
マキシマスミニマス

@Even:2つのグループに属している人はいないでしょう!
SamB

ファイルを管理する際にこの問題を解決するツール(他の多くのユーザーと一緒に)をリードする人々のために+1。ただし、XCOPYは減価償却されています。ROBOCOPY.EXEは非常に有能な後継機です。
jnaab

2
ちょっとしたピッキングで申し訳ありませんが、ファイルを_copy_コピーしません(ファイルを_moving_する代わりに?)-コピーには問題がなく、_moving_にのみ問題があるようです。私は経験不足のためにこのBCで間違っているかもしれませんので、間違っている場合は修正してください(つまり、「xcopy」を使用した後に「del」コマンドを使用すると、ファイルが実際に「コピーされて削除されます」! =移動?)
colemik

3

グループポリシー/セキュリティポリシー/ファイルシステムを使用して、複雑な権限を追跡します。(ポリシーで「アクセス許可の置き換え」を使用しないでください)。

CACLSをスケジュールして、夜間にすべての許可をリセットし、その後にgpupdate / forceを実行して、ポリシーから許可を再適用します。魔法のように機能します。


おそらくこれはWindowsサーバー専用ですか?グループポリシーをドメインオブジェクトに適用する必要があるため、これはWindows以外のストレージ共有に適用できませんか?
リッチM

2

Windows 7(またはWindows Vistaの場合もある)以降、フォルダーまたはファイルのアクセス許可は、フォルダーが移動され、ソースと宛先が同じNTFSボリューム上にある場合-ファイルまたはフォルダーがエクスプローラー経由でコピーされる場合、親から継承します。以前のOSでは、Farマネージャーを使用できます。これにより、宛先から(他の多くの機能とともに)アクセス許可の継承を有効にすることができます。Farは一般ユーザーにとってはフレンドリーではないかもしれませんが。


0

非常に簡単な回避策は、ファイルを圧縮して宛先ディレクトリに展開することです。


私はこれを試しましたが、残念ながらうまくいきませんでした。zipアーカイブの許可は、私がそれを行う前に異なります。継承された許可は残りますが、明示的な許可は作成されません。
リッチM
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.