Windows の2種類のアクセス権
Windows のフォルダ/ファイルのアクセス権には以下の 2 種類があります。
- NTFS ファイルシステムに内在するアクセス権
- SMB/CIFS (共有フォルダ) サービスに内在するアクセス権
1つ目の NTFS アクセス権は、NTFS ファイルシステム上に存在しているフォルダやファイル 1 つ 1 つにアクセス許可・拒否のルールが書かれているものです。その Windows マシンにログインしたユーザはこのアクセス権に従ってフォルダ/ファイルへの制御が為されます。
NTFS アクセス権の種類は単純な「読み取り」や「書き込み」だけでなく、「フォルダの内容の一覧表示」、「アクセス許可の読み取り」等、13 種類あります。
2 つ目の SMB/CIFS アクセス権は、別のマシンが SMB (CIFS) というプロトコルを使って IP ネットワーク経由でその Windows マシンのファイルシステム (共有フォルダ) にアクセスする場合に適用されるものです。
SMB/CIFS アクセス権の種類は、NTFS アクセス権と違い、「Read Only (読み取り)」と「Read/Write (読み書き)」の 2 種類だけです。
SMB/CIFS で別マシンの NTFS ファイルシステム上のフォルダ/ファイルへアクセスする場合、まずはこの SMB/CIFS アクセス権で許可されている必要がありますが、NTFS アクセス権でも許可されている必要があります。
例えば SMB/CIFS アクセス権が読み取りの場合は NTFS アクセス権が書き込みがあっても SMB/CIFS 経由では書き込みできません (直接 Windows ログインすれば可) し、SMB/CIFS アクセス権が読み書き可であっても NTFS アクセス権で何も権限がなければ何もできません。
1. NTFSのアクセス権
OS とファイルシステムとアクセス制御
Windows OS と NTFS ファイルシステムは、独立したものではありますが、緊密に連携されています。
特にフォルダ/ファイルのアクセス制御は、OS 上で管理されている『 SID (Windows ユーザアカウントの識別子)』が、NTFS ファイルシステム上で管理されている『アクセス権情報』に含まれていますので、OS とファイルシステムの連携の代表例になります。
所有者とアクセス権
各フォルダ/ファイルのアクセス制御に関わるのは『アクセス権』と『所有者』の2つです。
まず、アクセス権にはそのフォルダ/ファイルに対し、『誰が(どの SID が)』『どのような操作をして良いか(フルコントロールか、読み書きか、読み取りのみか、等)』が記述されています。
例えばあるファイルには、『 [ administrator の SID ] はフルコントロール可、[ ユーザ A の SID ] は読み書き可、[ ユーザ B の SID ] は読み取りのみ可』等と書かれています。これについては最初の図の例にある通りです。
次に所有者についてですが、所有者にはそのフォルダ/ファイルへのアクセス権を自由に変更できる権限が与えられます。
なお、administrator であっても『アクセス権』で許可されていなければアクセスできません。このあたりが Linux と考え方が異なります (Linux では root ユーザはパーミッション無視で全てにアクセス可能)。
ですが、administrator 等一部の管理者ユーザについては、全てのフォルダ/ファイルに対し、アクセス権(パーミッション)無視で、所有者の変更が可能です。なのでアクセス権がなくなっても、まずは所有者を administrator に変えれば、その後に自身のアクセス権を付与し、アクセス可能になります。
また、アクセス権の詳細については以下を参照してください。
2. SMB/CIFS (ファイル共有) のアクセス権
Windows のファイルを IP ネットワーク経由で共有させる場合、SMB というプロトコルを使って共有します。(もともとは CIFS という名前だった)
この SMB は『 NTFS アクセス権』とは独立した『 SMB/CIFS アクセス権情報』を保有しています。
NTFS アクセス権がファイルシステム上のフォルダ/ファイル1つ1つにあるのに対し、SMB/CIFS アクセス権は、SMB/CIFS サービスプロセス上にあります。
SMB/CIFS サービスプロセスでは、クライアント(ユーザ)からのコマンドが『どのファイルに対して』『どのような操作をするか(Read なのか Write なのか)』を見て、SMB/CIFS アクセス権に合致するかを確認し、後の処理は NTFS ファイルシステムの管理プロセスに委ねます。
つまり SMB/CIFS アクセス権はネットワークアクセスに対する門番であり、それ以降は NTFS アクセス権が制御します。
NTFS アクセス権と SMB/CIFS アクセス権の違いが分かる具体的な設定例
例えば、ある Windows に、フォルダ『c:¥test1¥test2』を共有設定 (共有名 : test3、アクセス権 : taro.ito=Read Only) したとします。
このとき、Windows に直接ログインしたユーザがエクスプローラから見る分には変化ありませんが、別のマシンから SMB/CIFS で接続しに行くと、共有したフォルダが見えるようになります。例えば共有設定した Windows の IP が 10.1.1.1 だった場合、エクスプローラで
と打つと、共有した C:\test1\test2 の中が見えるようになります。
この時、上位フォルダの “test1“ の NTFS アクセス権は無視されますが、test1 のフォルダには辿れません。test3 の SMB/CIFS アクセス権と test2 の NTFS アクセス権の両方で許可されている範囲でアクセスが可能になります。
つまり、共有したフォルダはショートカットができるが、ショートカットされた途中のパス (test1)はアクセスできないのです。
コメント