icacls (win2k8) スクリプト例

11月 23, 2021
admin

cacls, xcacls.vbs に続いて、今度はファイルやフォルダのパーミッションを設定する icacls を紹介します。

ここで、いくつかの実用例を紹介します。

ディレクトリの束を作成する


md d:\appsmd d:\profilesmd d:\users

ディレクトリを共有する。 オフライン キャッシュに注意してください。ユーザーは自分のホームディレクトリのオフライン キャッシュを有効にすることができ、他のディレクトリはオフライン キャッシュが無効になっています。


net share apps=d:\apps /grant:everyone,FULL /CACHE:Nonenet share profiles=d:\profiles /grant:everyone,FULL /CACHE:Nonenet share users=d:\users /grant:everyone,FULL /CACHE:Manual

次に、アプリ共有の ntfs 権限をスクリプト化しましょう:
– “(OI)(CI):F” はフル コントロール「このフォルダ、サブフォルダ、およびファイル」を意味します。M” は “This Folder, Subfolders and files”
– “/inheritance:r” は親から継承したすべての ACL を削除する

(OI) This folder and files
(CI) This folder and subfolders.All rights reserved.
(OI)(CI) このフォルダとサブフォルダとファイル
(OI)(CI)(IO) サブフォルダとファイルのみ
(CI)(IO) サブフォルダのみ
(OI)(IO) ファイルのみです。

そして許可の可能性

perm は許可マスクで、次の2つの形式のいずれかで指定できます:
単純な権利の列です。
N – アクセス不可
F – フルアクセス
M – 変更アクセス
RX – 読み取りと実行アクセス
R – 読み取り専用アクセス
W – 書き込み専用アクセス
D – 削除アクセス
特定の権限を括弧で区切ったカンマリストです。
DE – delete
RC – read control
WDAC – write DAC
WO – write owner
S – synchronize
AS – access system security
MA – maximum allowed
GR – generic read
GW – generic read。 汎用ライト
GE – 汎用実行
GA – 汎用すべて
RD – データ読み込み/ディレクトリ一覧
WD – データ書き込み/ファイル追加
AD – データ追記/サブディレクトリ追加
REA – 拡張属性を読む
WEA – 拡張属性を書く
X – 実行/トラバース
DC – 子を削除する
RA – 属性を読む
WA – 属性を書く write attributes

Here Discription of all possible NTFS permissions

Permission Description

Traverse Folder / Execute File

For Folders: Traverse Folderは、ユーザーが通過するフォルダーに対する権限を持っていない場合でも、他のファイルやフォルダーに到達するためにフォルダーを通過することを許可または拒否します。 (フォルダにのみ適用されます)[トラバースフォルダ]は、グループまたはユーザーがグループポリシースナップインで[トラバースチェックの回避]ユーザー権限を付与されていない場合にのみ有効になります。 (デフォルトでは、Everyoneグループにトラバースチェックのバイパスユーザー権が与えられています。)

ファイルについて。 ファイルの実行]では、プログラムファイルの実行を許可または拒否します。 (ファイルのみに適用されます)

フォルダにトラバースフォルダパーミッションを設定しても、そのフォルダ内のすべてのファイルに対して自動的にファイルの実行パーミッションは設定されません。

List Folder/Read Data

List Folder はフォルダ内のファイル名およびサブフォルダ名の表示を許可または拒否します。 List Folderは、そのフォルダの内容のみに影響し、権限を設定しているフォルダがリストアップされるかどうかには影響しません。 (フォルダにのみ適用されます。)

Read Dataは、ファイル内のデータの閲覧を許可または拒否します。 (ファイルのみに適用されます。)

属性の読み取り

ファイルまたはフォルダの読み取り専用や隠しなどの属性の表示を許可または禁止します。 属性はNTFSによって定義されます。

Read Extended Attributes

ファイルまたはフォルダの拡張属性を表示するかどうかを許可または拒否します。

Create Files/Write Data

Create Files フォルダー内のファイルの作成を許可または拒否する。 (フォルダにのみ適用).

Write Dataは、ファイルへの変更と既存のコンテンツの上書きを許可または拒否します。 (ファイルのみに適用されます。)

Create Folders/Append Data

Create Foldersフォルダ内のフォルダの作成を許可または禁止します。 (フォルダにのみ適用されます。)

Append Dataは、ファイルの末尾への変更を許可または拒否しますが、既存のデータの変更、削除、上書きを許可しません。 (ファイルのみに適用されます。)

Write Attributes

Read Only や Hidden など、ファイルまたはフォルダの属性を変更するかどうかを許可または禁止します。 属性はNTFSによって定義されます。

Write Attributes権限は、ファイルまたはフォルダーの作成または削除を意味するものではなく、ファイルまたはフォルダーの属性に変更を加える権限のみを含んでいます。 作成または削除操作を許可(または拒否)するには、ファイルの作成/データの書き込み、フォルダーの作成/データの追加、サブフォルダーとファイルの削除、および削除を参照してください。

Write Extended Attributes

ファイルまたはフォルダの拡張属性の変更を許可または拒否する。 拡張属性はプログラムによって定義され、プログラムによって異なる場合があります。

Write Extended Attributes 権限は、ファイルまたはフォルダーの作成または削除を意味するものではなく、ファイルまたはフォルダーの属性に変更を加える権限のみが含まれます。 作成または削除操作を許可(または拒否)するには、ファイルの作成/データの書き込み、フォルダーの作成/データの追加、サブフォルダーとファイルの削除、および削除を参照してください。

サブフォルダとファイルの削除

サブフォルダやファイルに対してDelete権限が付与されていない場合でも削除を許可または禁止する。 (フォルダに適用されます。)

Delete

ファイルまたはフォルダの削除を許可または禁止します。 ファイルまたはフォルダの Delete 権限がない場合でも、親フォルダで Delete Subfolders and Files が許可されていれば削除できます。

Read Permissions

Full Control, Read, Write などファイルまたはフォルダの読み取り権限を許可または拒否する。

Change Permissions

Full Control, Read, Write など、ファイルまたはフォルダのアクセス権の変更を許可または拒否する。 ファイルまたはフォルダの所有者は、ファイルまたはフォルダを保護する既存の権限に関係なく、常にその権限を変更できます。

同期

異なるスレッドがファイルまたはフォルダのハンドルを待ち、それを通知する別のスレッドと同期することを許可または拒否します。 この権限は、マルチスレッド、マルチプロセス プログラムにのみ適用されます。

Example:
icacls "d:\apps" /grant "domain admins":(OI)(CI)F /inheritance:ricacls "d:\apps" /grant "everyone":(OI)(CI)M /inheritance:r

プロファイル共有では、「ドメイン管理者」だけがすべての「フォルダー、サブフォルダーおよびファイル」(したがって (OI)(CI):F) へのアクセスを許可されていて、他の誰もが「このフォルダーだけ」を準備できるはずです。
つまり、(CI) や (OI) の組み合わせがなければ、「このフォルダのみ」という意味になります。


icacls "d:\profiles" /grant "domain admins":(OI)(CI)F /inheritance:ricacls "d:\profiles" /grant "everyone":R /inheritance:r

新しいユーザーを作成したら、ドメイン管理者がそのユーザーのプロファイルフォルダを手動で作成し、適切な権限を持つユーザーを追加しなければなりません。

すべてのユーザーのホームディレクトリを含むユーザー共有についても同様です


icacls "d:\users" /grant "domain admins":(OI)(CI)F /inheritance:ricacls "d:\users" /grant "everyone":R /inheritance:r

あとはご自分の想像力でどうぞ 🙂

コメントを残す

メールアドレスが公開されることはありません。