treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

Windowsのアクセス権をもう一度学習し直そう

最近仕事上でWindowsアクセス権についてユーザに説明する必要があったので、頭の中を整理する意味でも再度その基本をご報告です。
環境はWindows10 Proで小規模環境のフォルダ共有を想定です。

「アクセス権」ってなにか?

アクセス権とは「アクセスしていいユーザ」と「アクセスしちゃいけないユーザ」を識別するためにフォルダの所有者が制限を課する設定です。

Windowsにおけるアクセス権には大きくわけて二種類あります。

  • 共有フォルダのアクセス権
  • ファイルシステム(NTFS)のアクセス権

それぞれを簡単に解説していきます。

共有フォルダのアクセス権

フォルダのプロパティで設定する「ネットワーク上の他のPCからPC内に保管されたデータを参照させる」設定をすることで、共有フォルダとなります。

フォルダを共有することで、そのフォルダの中身全てがネットワークを経由してアクセスすることが可能になります。

共有のプロパティ画面からアクセス権設定をすることで、ユーザを制限することができます。

この画面で指定したユーザ(正確にはPCに登録されたユーザ名)をここに登録することで、他のPCユーザID(前述で登録したユーザ名と同じ認証情報)が「許可されたユーザ」としてアクセスを許可することになります。(デフォルトは画面にあるようにEveryone=誰でも、が指定されている)

ここで、許可したいユーザを指定して「読み取り専用」とか「変更)=読み取りと書き込み、だいたいこれでいい)」とか「フルコントロール(=変更権限に加えてアクセス権設定が出来る)」といった権限の許可具合を指定して公開範囲を調整していきます。

共有するだけなら、このアクセス権の指定方法だけ覚えておけばいいということになります。

ファイルシステム(NTFS)のアクセス権

共有のアクセス権より詳細で広範囲のアクセス権を設定できるのが「ファイルシステム(NTFS)のアクセス権」です。ファイルシステムだけに共有アクセス権より低いレイヤで制限を掛けています。

画面もフォルダのプロパティ画面で違うタブに設定画面が用意されています。

NTFSアクセス権が共有のアクセス権と相違する点は以下の通り。

  • 共有と違ってフォルダ単位だけでなく個別のファイル単位でも適用できます。このため、共有フォルダで他のユーザから参照されるファイルでも例外的にアクセスさせないデータを指定することができます。(管理が煩雑になるので通常はやらないですけど)
  • NTFSアクセス権は共有のようにネットワーク経由でアクセスされる時のアクセス権確認も実施することに加えて、ローカルユーザ(直接PCにサインインしているユーザ)に対してもアクセス制限を加えることができます。

つまり、共有フォルダのアクセス権は…、

「共有フォルダのアクセス権チェック」⇒「NTFSアクセス権チェック」と二段階を経て、アクセスが許可されている、と考えることができます。共有フォルダのアクセス権があってもNTFSアクセス権で拒否設定が入っているとデータにアクセスすることはできなくなる、という動きをします。

アクセス権の種類は共有のときに解説した「読み取り」「変更」「フルコントロール」の他に「書き込み=ファイルやサブフォルダの追加」とか「読み取りと実行=読み取りに加えてファイル実行、Linuxでいうとこのr_x」といったもうちょっと詳細な動作許可の指定が可能になります。

ローカルログオンとネットワークログオン

ここでちょっと小話。

直接コンピュータの目の前でサインインしてコンピュータを使用するのがローカルログオン、<\\%computername%\%shareFolder%>の形式でネットワーク経由でアクセスするのがネットワークログオンです。(ちょっと古いWindows用語ですが)

前述のようにNTFSアクセス権はローカルログオンとネットワークログオンの両方に対してアクセス制限を掛けることになるので、共有より厳密なアクセス制限となるのですが、逆に言えば「NTFSアクセス権の設定ミスがあって誰もアクセス出来ないファイル」が生成される可能性もあります。それほどNTFSアクセス権は強力な設定で、知識と理解が要求されます。

オリジナル(替えのきかない)データをNTFSアクセス権でアクセス制限して設定ミスでデータを失ってしまう、ということがあることから、アクセス制限を掛ける場合にはテストとバックアップ(アクセス権を掛ける場所に配置するデータは複製を取得しておく)のが重要といえます。

で、どっちを使うの?

アクセス権が二種類ある、ということはここまでで理解できたと思います。じゃあ、どっちを使うのか?が気になってきます。

その選択を決定する要件としては「ローカルユーザを対象にするかどうか」じゃないかと思います。

ローカルユーザを対象とするのであればNTFSアクセス権でアクセス制限を掛けないと、そもそもアクセス制限が出来ません。NTFSアクセス権一択です。

共有フォルダに限定したネットワークログオンなら、どちらでも制限は可能ですが、NTFSアクセス権は緩くしておき、共有フォルダのアクセス権で管理する方が設定の手間や考えることが少なくて済みます。

詳細なアクセス権(読み取りと実行、とか読み書きのみとかNTFSアクセス権にしかないアクセス権)を使いたいのであれば、共有のアクセス権とNTFSアクセス権を連動させて設定することになります。

最後に

うーん、自分で書いててこんなこと言うのもなんですが、アクセス権って複雑ですよね。