NTFSアクセス許可-ファイルとフォルダーを作成しますが、削除と変更はできません


10

目的:ユーザーがファイルを作成できるが、変更や削除はできない共有フォルダー。また、ユーザーはサブフォルダーを作成できる必要があります。

セキュリティグループに次の高度なNTFSアクセス許可を付与しました。

  • フォルダの走査/ファイルの実行
  • フォルダのリスト/データの読み取り
  • 属性の読み取り
  • 拡張属性の読み取り
  • ファイルの作成/データの書き込み
  • 読み取り許可

試行錯誤の結果、「属性の書き込み」を許可しないことで、ユーザーが既存のファイルを変更/削除できないようになっていることがわかりました(これが私が望んでいることです)。しかし、なぜこれが機能するのかを正確に説明したいと思います。私が持っている唯一の理論は、ファイルの削除/変更がファイルの属性を変更するということですか?これは同じ線に沿った議論です。

編集-私の質問の2番目の部分は無関係です。「ファイルの作成/データの書き込み」を選択しただけだと思いましたが、「フォルダの作成/データの追加」も選択しました。

さらに、ユーザーがルート内にサブフォルダーを作成できるようにしたいのですが、「ファイルの作成/データの書き込み」を許可することで、これが可能になることがわかりました。しかし、繰り返しになりますが、この名前はこの権限がフォルダではなくファイルの作成を許可するだけであることを示唆しているので、なぜ機能するのかわかりませんか?Microsoftの「ファイルの作成/データの書き込み」属性の説明は、「フォルダーの場合、ユーザーがフォルダー内にファイルを作成できるかどうかを指定します。ファイルの場合、ユーザーがファイルを変更したりデータを上書きしたりできるかどうかを指定します。」フォルダ内にサブフォルダを作成する機能についての言及はありませんか?

だから、基本的に、私がやろうと思ったことを達成しましたが、なぜそれが機能するのか理解できませんか?


NTFSファイルの内容は「属性」です。つまり、デフォルトの名前なしデータ属性と、おそらく1つ以上の名前付きデータ属性です。
kreemoweet

こちらの良い答えもご覧ください:superuser.com/a/1145363/132727
CrazyTim 2017

回答:


7

試行錯誤の結果、「属性の書き込み」を許可しないことで、ユーザーが既存のファイルを変更/削除できないようにすることがわかりました(これが私が望んでいることです)。しかし、なぜこれが機能するのかを正確に説明したい。

これは、ファイルの変更がどのように行われるを正確に示す関数です。ファイルを変更しても、オペレーティングシステムは編集中のファイルを実際には変更しません。編集中のファイルを、変更したコピーで置き換えます。したがって、基本的に、ファイルの変更は元のファイルのコピーを取り、それをメモリにロードして(変更した場合)、元のファイルを削除し、同じ場所に同じ名前で新しいファイルを作成します。これが、Deleteファイルを変更するためにNTFS アクセス許可が必要な理由です。実際、Advanced permissionsNTFSオブジェクトでをチェックすると、Modifyアクセス許可はありません。変更は、実際には単なる削除と書き込みです。

したがって、ファイルの新しいコピーを作成するには、この新しいファイルのファイル属性を書き込む必要がありWrite attributesます。もちろん、属性を書き込むにはNTFSアクセス許可が必要です。そのため、Write attributesNTFSアクセス許可がないとファイルを変更できません。

具体的には、Fitzroyとのチャットのおかげで、ファイルを変更するとき、ただし完全に新しいファイルを作成するときではなく、ユーザーのセキュリティコンテキスト(権限なしでは許可されない)で書き込む必要があるNTFSファイル属性は、可能ファイルのMicrosoft Core Team開発者の1人によると、これは属性の一部ですWrite AttributesLastModificationTimeStandard Information


1
「これが、ファイルを変更するためにNTFS削除アクセス許可が必要な理由です。実際、NTFSオブジェクトの詳細アクセス許可をチェックすると、変更アクセス許可はありません。変更は、実際には単なる削除と書き込みです。」事実や参照でそれをサポートできますか?さらにテストを行った結果、単純なテキストファイルの内容を(メモ帳を使用して)変更するために、属性の書き込み、拡張属性の書き込み、およびフォルダーの作成/データの追加というアクセス許可を追加したことがわかりました。ファイルを変更すると、プログラムによって動作が異なる場合があることを認めます...
Fitzroy

...しかし、このテストは「削除」が不要であることを証明していると思います。
フィッツロイ

「これは正確にファイルの変更が行われる機能です。ファイルを変更しても、オペレーティングシステムは編集中のファイルを実際には変更しません。編集中のファイルを変更したコピーで置き換えます。したがって、基本的に、ファイルの変更は元のファイルのコピーを取り、それをメモリにロードして(変更した場合)、元のファイルを削除し、同じ場所に同じ名前で新しいファイルを作成します。 " -うーん、かなり誤解を招きやすく、さまざまな技術レベルで著しく不正確です。
user2864740

3

そのとおりです。「属性の書き込み」権限がないと、ユーザーはファイルを変更できません。そしてMicrosoftのドキュメントによると、それは意味がありません。ただし、ファイルを変更しても、ファイルの削除や再作成を意味するわけではありません。アプリケーションが変更のためにファイルを開くとき、オペレーティングシステムはファイルを削除しません。ただし、OSはファイルをロックして、同時変更を防止します。私の推測では、ファイルのロックは「ファイル属性の変更」の概念に該当します。したがって、属性を変更できないと、ファイルを変更できなくなります。

質問の2番目の部分では、再現できません。フォルダーに適用される2つの異なるアクセス許可があります。「ファイルの作成/ ...」と「フォルダーの作成/ ...」であり、テスト中にドキュメントに従って機能しました。


Drk-ちょうどあなたの答えを消化します。参考までに、質問で許可を省略しました。「拡張属性の読み取り」もリストしておく必要がありました。この権限がないと、ユーザーがファイルの内容を表示できないことがわかりました(「アクセスが拒否されました」エラーが表示されます)。それに応じて質問を更新しました。
フィッツロイ

OK、私のテストでは、あなたもその許可を与えていると思いました。「... /データの書き込み」権限が付与されていても、メモ帳でファイルを変更できないことがわかりました。ここで、もう1つ注目に値するものがあります。データの書き込みとデータの追加のアクセス許可は、アプリケーションが変更のためにファイルを開く方法によって異なります。ほとんどの場合、メモ帳はファイルを開いて、データを追加するために必要でない場合でも常にファイルを追加します。
drk.com.ar 14

質問の2番目の部分では、再現できません。フォルダーに適用される2つの異なるアクセス許可があります。「ファイルの作成/ ...」と「フォルダーの作成/ ...」であり、テスト中にドキュメントに従って機能しました。私の間違い、「ファイルの作成/データの書き込み」のみを選択したと思いましたが、「フォルダの作成/データの追加」も選択しました。
フィッツロイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.