このページの本文へ

前へ 1 2 次へ

Windows Info 第323回

WindowsのACL(Access Control List)を解説する【準備編】

2022年04月17日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

エクスプローラーからACLのようなものを見る

 エクスプローラーで適当なディレクトリ(フォルダー)を選択し、右クリックでプロパティを開く。その「セキュリティ」タブは、ACLからの情報を表している。

ファイルやディレクトリのプロパティダイアログにある「セキュリティ」では、ACLからの情報を簡略化して表示している。さらに詳細な情報を見るには、「詳細設定」のボタンを使う

 ただし、これはACLそのものではなく、ユーザーにわかりやすいようにとMicrosoftが“配慮”したものだ。上のリストの「グループ名またはユーザー名」がプリンシパル、下のリストはプリンシパルが持つアクセス許可である。

 ここに詳細設定ボタンがあるので押すと、別のダイアログボックス「~のセキュリティの詳細設定」が表示される。

詳細設定のボタンを押すと別のダイアログが表示される。ここでは、プリンシパルごとに要約したアクセス権を表示できる。このリストの各行がACLに含まれるACEに相当する。細かなアクセス権を調べるには、リストの項目を選択して「表示」ボタンを押す

 ここでようやく「プリンシパル」の表記が出る。同じリストにある「アクセス」は、ACEによるアクセス権を要約して表示したもの。ファイル用のACEには多数のアクセス項目があり、そのうち、よく使われるパターンに名前がついていて、それがここに表示される。名前のないパターンは「特別なアクセス許可」と表示される。

 ここでプリンシパルを選んで、下の「表示」(または編集)ボタンを押すと、さらに別のダイアログ「~のアクセス許可エントリ」が表示される。

「アクセスの許可エントリ」で最初に表示されるのは「基本のアクセス許可」で、プロパティのアクセス許可として表示されていたものと同じ簡約情報である。ウィンドウ右上の「高度なアクセス許可を表示する」をクリックすることで、さらに詳細な情報が得られる

 最初に見えるのは、プロパティのセキュリティダイアログと同じ設定項目だが、右側の「高度なアクセス許可を表示する」をクリックすると多数の項目が現れる。

高度なアクセス許可は、ファイルやディレクトリの場合13個のアクセス権として表示される。逆に言えば、これらの特定の項目がオンになったものが基本のアクセス許可に対応している

 これは、GUI側からアクセスできるACEに含まれるアクセス権の一部だ。ここでACLを構成するACEの一部を見ることができるが、実際には、ここに表示されないアクセス権がACEにはある。

コマンドラインでさらに追求する

 今度は同じディレクトリでコマンドプロンプトウィンドウ(Windows Terminalでも可)を開く。自分のファイルを見るなら、管理者権限で開く必要はないし、cmd.exeでもPowerShellでもいい。ただ、面倒なことも多いので、cmd.exeを使うほうがよい(一部のコマンドライン引数がPowerShellで解釈されてしまうことがある)。ここでWindows組み込みのコマンドicacls.exeを使う。

icacls.exe 〈ファイル/ディレクトリ名〉

とすることで、対象のアクセス権とプリンシパルを表示できる。

ACLに関してもう少し詳細な情報を得るなら、icacls.exeコマンドを使う。引数としてファイル名やディレクトリ名を指定すると、対象のACL情報(ただし、まだ簡約化されている)を表示できる。詳しい使い方は、引数を指定せずにicacls.exeを実行すれば表示される。MSのサイトにあるicacls.exeのヘルプページは古いバージョンのものなので、コマンドが表示するオンラインヘルプが現状最も正確である

 細かな使い方は、icacls.exeを引数なしで起動すれば表示される。このコマンドはACLを表示するものだが、対応しているのはDACLのみ。また、ファイルシステムのACL専用である。なお、このicacls.exeは、XPまで使われていたcacls.exeの後継版であり、cacls.exeの利用は推奨されなくなった(ただし、Windows 11にもまだ残っている)。

 このコマンドでは、アクセス権の表示・指定がエクスプローラーのプロパティとは異なっている。そもそも、エクスプローラーもこのコマンドもACEに含まれるアクセス権そのものを直接表示しているのではなく、理解しやすい形式に変換しているのだ。ある意味、ACLのコマンドといいながら、ACLそのものを表示しているわけではない。

 icaclsコマンドは、ディレクトリを対象にすると、子オブジェクトに継承されるアクセス権などを表示することができる。この部分では、エクスプローラーよりも詳細な情報が得られる。

 このほかには、PowerShellのget-aclコマンドでもACLからの情報を得ることができるが、一部のアクセス権の表示が数値表示になってしまうなど、不完全な部分がある。そういうわけで、ファイルシステムのACLに関する情報を得るなら、icacls.exeを使うのがいまのところもっともACLに近づくことができる方法だ。

 ざっと駆け足で、ACL関連のGUI機能やコマンドの使い方を解説した。icacls.exeを使うとファイルやディレクトリのACLを表示できるだけでなく、削除や追加、置き換えも可能だ。しかし、その操作をするには、もう少しACLを理解する必要がある。というわけで、次回はACLそのものの解説に入る。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン