Windowsファイルのアクセス許可と属性


15

Windowsのファイルセキュリティスキーム全体についてやや混乱しています。私はUNIXのバックグラウンドを持っているため、ファイルのアクセス許可/セキュリティ設定と属性の関係を完全には理解していません。特に読み取り専用、ファイルが持つことができます。

たとえば、管理者として自分のボックスにログインし、管理者にフルコントロールを許可するファイルがあり、読み取り専用属性が設定されている場合、そのファイルに書き込むことはできませんか?おそらく完全に制御できるファイルに書き込むことができる読み取り専用属性を削除する以外の方法はありますか?そうでない場合、完全に制御できない場合の完全な制御の利点は何ですか?


1
素晴らしい質問
ジムB

Windowsファイル属性はUnixファイルフラグに似ています
クリスS

これらの原則は、Server 2003だけでなく、Windowsのすべての最新バージョンに適用されるため、これをより一般的なものに編集しました。
MDMarra13年

実際、2012年以降は異なる可能性があります
ジムB

回答:


16

ファイルのアクセス権は、ファイルに対するアクセス権を決定します。フルコントロールを使用すると、権限の作成、削除、追加、変更、属性の変更などができます。

ファイルとフォルダーには、ほとんどの* nixファイルシステムのファイルと同様に、追加の属性を設定できます。両方のプラットフォームでこの例として「非表示」が思い浮かびます。

Windowsでは、追加の属性には、システム、読み取り専用、アーカイブ、暗号化、および圧縮が含まれます。フルコントロール(または変更)を行うと、これらの属性を変更することができますが、発見したように、読み取り専用ファイルはフルコントロールを持つ人でも読み取り専用です。フルコントロールを使用するとファイルの属性を変更lsできますが、* nixのデフォルトでルートユーザーに隠しファイルを表示しないように、ファイルの属性は自動的にオーバーライドされません。


属性を使用する「隠された」NTFSファイルなどはありません。ファイルはストリームを使用して非表示にすることができます。NTFSを使用すると、NTFSファイルシステムでは、UNIXのファイルパーミッションを保存することができる理由である拡張属性フィールド($ EA)を使用して、任意のアプリケーションで必要とされるすべての属性をサポート
ジム・B

6
「非表示」はどこでもNTFSの機能であるとは言いませんでしたが、「非表示」はファイルまたはフォルダーに設定できる属性であることは間違いありません。あなたがしようとしているポイントが何であるか、私には本当に分かりません。
MDマーラ

Unixのこの隠し属性は何ですか?
エドワードトムソン

非表示は、おそらく貧しい例ですが、私のポイントを示しています。それ自体は「隠された」属性ではなく、ピリオドで始まるファイルだけです。問題のWindowsファイル属性は、実際にはunixのファイルフラグのようなものに、より類似しています:freebsd.org/cgi/man.cgi?query=chflags&sektion=1
MDマーラ

4

許可はセキュリティ管理です。属性は、操作を試行するセキュリティプリンシパルに関係なく適用されます。

コマンドプロンプトに表示される属性よりもはるかに多くの属性があります。これには、ファイルがリンク、暗号化、ディレクトリ(ファイルの種類)、整合性(低、中、高)の場合が含まれます。

ファイル属性定数
http://msdn.microsoft.com/en-us/library/windows/desktop/gg258117%28v=vs.85%29.aspx

FILE_ATTRIBUTE_ARCHIVE 32(0x20)

アーカイブファイルまたはディレクトリであるファイルまたはディレクトリ。通常、アプリケーションはこの属性を使用して、バックアップまたは削除するファイルをマークします。

FILE_ATTRIBUTE_COMPRESSED 2048(0x800)

圧縮されたファイルまたはディレクトリ。ファイルの場合、ファイル内のすべてのデータが圧縮されます。ディレクトリの場合、新しく作成されたファイルとサブディレクトリのデフォルトは圧縮です。

FILE_ATTRIBUTE_DEVICE 64(0x40)

この値は、システムで使用するために予約されています。

FILE_ATTRIBUTE_DIRECTORY 16(0x10)

ディレクトリを識別するハンドル。

FILE_ATTRIBUTE_ENCRYPTED 16384(0x4000)

暗号化されたファイルまたはディレクトリ。ファイルの場合、ファイル内のすべてのデータストリームは暗号化されます。ディレクトリの場合、暗号化は新しく作成されたファイルとサブディレクトリのデフォルトです。

FILE_ATTRIBUTE_HIDDEN2(0x2)ファイルまたはディレクトリは非表示です。通常のディレクトリリストには含まれません。

FILE_ATTRIBUTE_INTEGRITY_STREAM 32768(0x8000)

ディレクトリまたはユーザーデータストリームは整合性で構成されます(ReFSボリュームでのみサポートされます)。通常のディレクトリリストには含まれません。整合性設定は、ファイルの名前が変更された場合、ファイルとともに保持されます。ファイルがコピーされる場合、ソースファイルまたは宛先ディレクトリのいずれかに整合性が設定されていれば、宛先ファイルには整合性が設定されます。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、およびWindows XP:このフラグは、Windows Server 2012までサポートされていません。

FILE_ATTRIBUTE_NORMAL 128(0x80)

他の属性が設定されていないファイル。この属性は、単独で使用される場合にのみ有効です。

FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 8192(0x2000)

ファイルまたはディレクトリは、コンテンツインデックスサービスによってインデックス付けされません。

FILE_ATTRIBUTE_NO_SCRUB_DATA 131072(0x20000)

バックグラウンドデータ整合性スキャナー(別名スクラバー)によって読み取られないユーザーデータストリーム。ディレクトリに設定すると、継承のみが提供されます。このフラグは、記憶域スペースとReFSボリュームでのみサポートされています。通常のディレクトリリストには含まれません。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、およびWindows XP:このフラグは、Windows 8およびWindows Server 2012までサポートされていません。

FILE_ATTRIBUTE_OFFLINE 4096(0x1000)

ファイルのデータはすぐには利用できません。この属性は、ファイルデータが物理的にオフラインストレージに移動されることを示します。この属性は、階層ストレージ管理ソフトウェアであるリモートストレージによって使用されます。アプリケーションは、この属性を勝手に変更しないでください。

FILE_ATTRIBUTE_READONLY 1(0x1)

読み取り専用のファイル。アプリケーションはファイルを読み取ることはできますが、書き込みも削除もできません。この属性はディレクトリでは使用されません。詳細については、Windows Server 2003、Windows XP、Windows Vista、またはWindows 7のフォルダーの読み取り専用属性またはシステム属性を表示または変更できないを参照してください。

FILE_ATTRIBUTE_REPARSE_POINT 1024(0x400)

再解析ポイントが関連付けられているファイルまたはディレクトリ、またはシンボリックリンクであるファイル。

FILE_ATTRIBUTE_SPARSE_FILE 512(0x200)

スパースファイルであるファイル。

FILE_ATTRIBUTE_SYSTEM 4(0x4)

オペレーティングシステムが一部または排他的に使用するファイルまたはディレクトリ。

FILE_ATTRIBUTE_TEMPORARY 256(0x100)

一時ストレージに使用されているファイル。通常、アプリケーションはハンドルが閉じられた後に一時ファイルを削除するため、十分なキャッシュメモリが利用可能な場合、ファイルシステムは大容量ストレージにデータを書き戻すことを避けます。そのシナリオでは、システムはデータの書き込みを完全に回避できます。そうでない場合、データはハンドルが閉じられた後に書き込まれます。

FILE_ATTRIBUTE_VIRTUAL 65536(0x10000)

この値は、システムで使用するために予約されています。


これは質問に正確に答えません。彼らは、なぜ読み取り専用が「フルコントロール」特権に取って代わるのか疑問に思っていました。これらの属性はプログラム内で使用されます。
ネイサンC

1
また、FATスタイルとNTFS属性を混在させました-それはもはや大きな違いではありませんが、区別することが重要な場合があります。
クリスS

1
@NathanC。これも質問に正確に答えます。読み取り専用はフルコントロールに優先しません。答えは「操作を試みるセキュリティプリンシパルに関係なく属性が適用される」と述べていますが、Chris Sが指摘したように、オプションのレガシー属性はNTFS属性と混合されています。
ジムB

-6

より長い回答を提供しますが、一般的にあなたが参照している属性は、DOS FATファイルシステムの時代からのファイルのレガシー設定です。FATは、これらの属性をファイルのファイルシステムディレクトリエントリの一部として保存します。NTFSには、古い属性をカプセル化する独自の属性セットがあります。デフォルトでは、ファイルにアクセスできるユーザーは誰でもそれらを変更でき、データの偶発的な上書きを防ぐために使用できます。

アクセス許可はNTFS固有であり、これらのアクセス許可の変更はユーザーごとに制御できます(したがって、ユーザーは読み取り専用から書き込み可能に変更できません)。具体的には、attribコマンド(レガシーバージョンと、新しいバージョンのウィンドウの整合性などの新しい属性の追加の両方を表示する)を見ると、アクセス許可に読み取り専用アクセスを設定し、属性に読み取り専用を設定することはできません。抽象化により、必ずしも通常のGUIに表示せずに従来の属性($ standard_information NTFS属性に格納されている)を有効にすることが技術的に可能であることを理解することも重要です。

具体的には、フルコントロールのアクセス許可により、NTFSアクセス許可を変更できます。読み取り専用属性を設定すると、削除されるまで変更が防止されます。

FAT属性は、WindowsのNTFS属性よりも優先されます。


3
in general attributes are legacy settings-この声明は間違っていると思うので、この情報源はありますか。それらはファイルシステムのパーミッションを補完します-それらに置き換えられたり、置き換えられたりすることはありません。非表示、アーカイブ、またはシステムの機能を置き換える標準のアクセス許可には何もありません。
MDマーラ

1
Any user can modify them and can be used to prevent accidental overwrites of data.また、これは事実上正しくありません。ファイルまたはディレクトリへの「属性の書き込み」を持つユーザーのみが、そのオブジェクトの属性を変更できます。
MDマーラ

1
明確化のためにi.stack.imgur.com/2fhEr.png
ネイサンC

2
ジム、最初からこれを見てください。この「NTFS属性」のうさぎの穴をはるかに下回ったので、NTFS属性について話しているのは自分だけだということを忘れました。OPは明らかに、「非表示」や「読み取り専用」などのグローバルファイル属性について話している。彼は質問の中で「読み取り専用」と明示的に言及しています。あなたが用心深く失敗しようとしているのか、この点を合法的に見逃しているのかはわかりません。はい、NTFS(拡張)属性はグローバル(FATスタイル)ファイル/フォルダー属性とは異なります。誰もそれを主張していません。
MDマーラ

3
この質問の精神と意図を明確に見逃していると思います。あなたは、ある部分は間違っていて、ある部分は役に立たない姿勢をとろうとしていると思います。NTFS属性がどのように機能するかを把握していることを明確に示してきましたが、そもそもそれらについて質問したり、回答使用したりする人はいませんでした。NTFS属性に関する知識を誇示しようとしていた場合は、うまくいきました。問題は、あなたが質問の要点を完全に逃したことです。
MDマーラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.