ICACLSを使ってアクセス権限をコマンドラインで変更する方法

ページ : 1 2 3
<この記事を全て表示する場合はこちらをクリック>

001

Windows Server 2008のICACLSコマンドの使い方について調べてみました。
ICACLSコマンドは、CACLSコマンドに変わるコマンドラインでファイルのアクセス権限を変更出来る新しいコマンドです。

設定されているアクセス権限を調べてみる

まず、ICACLSで現在設定されているアクセス権限を表示させる方法です。
例えばDドライブのtestというフォルダのアクセス権限を調べる場合には、以下のように入力します。

入力結果は、以下のような結果になります。

このフォルダのアクセス権限は、GUI上から見ると以下のように設定されています。

002

なんだか難解ですね。
それでは、フォルダのアクセス権をいったん全て削除して、ICACLSコマンドだけを利用して先ほどの権限を復元してみましょう。
サーバの管理者権限を所持していれば、アクセス権が無くても、以下のコマンドで自分割り当てる事が可能です。

ただし、ICACLSを利用した以下のコマンドでは、所有者の書き換えを行う事は出来ません。
あくまでICACLSを実行する場合には、処理に対する正しいアクセス権限を持っていなければならないようです。

アクセス権限の継承

003

それでは、testフォルダに元の権限を付与してみましょう。

実はこの場合は、ややこしく設定する必要はなかったりします。
“/inheritance:e”を設定する事で、親フォルダのアクセス権限の継承が出来るので、削除したアクセス権限を個別に割り当てる必要は無いわけです。

ただしこのままでは厳密に言うと元のアクセス権限とは少しだけ異なっています。”/inheritance:e”でアクセス権限を継承させた場合、以下のようなアクセス権限になります。

004

アクセス権限の削除

既に設定されているアクセス権限を削除する場合には、以下のようにコマンドを実行します。

ただし、継承されているアクセス権限はこの方法で削除する事は出来ません。
継承が有効になっている場合には、先にアクセス権限の継承を無効にし、アクセス権限をコピーする必要があります。

ただし、以下のようにICACLSを実行しても、上手く動作してくれません。

継承を無効にしてアクセス権限を削除

少し強引ですが、ICACLSをパイプ”|”で繋いで実行する事で、無理やり一行でコマンドを実行させる事は出来ました。
※もっと効率の良いコマンド記載方法ご存じの方いらっしゃれば教えてください。



読み取りと実行権限を付与

“読み取りと実行権限”を付与する場合には以下のようにコマンドを入力します。

serv00というのは、ローカルホスト名です。ドメインアカウントを利用する場合にはドメイン名>\ユーザ名>という形になります。

変更権限を付与

“変更権限”を付与する場合には以下のようにコマンドを入力します。

フルコントロール権限を付与

“フルコントロール権限”を付与する場合には以下のようにコマンドを入力します。

アクセス権限をテキストに保存する

アクセス権限をテキストファイルに保存して、そのテキストファイルを元にアクセス権限を復元させる事も出来ます。
ディレクトリ構造だけ作成した後にこのコマンドを利用すれば同じようなフォルダ構造をたくさん作ったり、破損した時なんかに重宝すると思います。

サブフォルダのアクセス権限についてもバックアップする場合は、以下のように/Tを追加します。

アクセス権限をリストから復元する

アクセス権限を保存しておいたテキストから復元する場合には、/restoreスイッチを利用します。
リストア時にはリストアするフォルダが配置してあるディレクトリに対してICACLSを実行する必要があります。

/saveスイッチを実行した時に/Tを付けていた場合、/restore時には自動的にサブフォルダに対してもアクセス権限の書き換えが発生するようです。
また、フォルダ名に日本語が含まれている場合には、保存したテキストデータを開く際にUnicodeを選択しないと文字化けするので注意が必要です。

大量のフォルダに対してアクセス権限の付与をGUIで実行するのはかなり骨の折れる作業です。
そんな時にはICACLSを使って、少しでも楽な管理が出来るようにしたいですよね。



ページ : 1 2 3
<この記事を全て表示する場合はこちらをクリック>

1 2 3

6 COMMENTS

Undo

すごく早いお返事で驚きました。
教えていただき、ありがとうございます。

現在、ICACLSの出力結果を見やすくしてという
依頼を受け中なのでした。
感謝です。

pnpk

こんにちは、コメントありがとうございます。
自分も気になって試してみました。

[このオブジェクトの親からの継承可能なアクセス許可を含める]

のチェックを外すと(I)が消えましたので、(I)はおそらく権限の継承を意味していると思われます。

いかがでしょうか。
よろしくお願いします。

Undo

通りすがりですが

>BUILTIN\Administrators:(I)(OI)(CI)(F)

の「(I)」が何を意味しているかご存じですか?
ひたすらググったのですが、見つかりませんでした。

MSのリファレンスにさえ載っていません。
http://technet.microsoft.com/ja-jp/library/cc753525(WS.10).aspx

ご存じでしたら教えていただきたいです。

pnpk

>Sampoさん
コメントありがとうございます。
&で実行出来たのですね、知りませんでした。

実際試させていただいたところ、かなり快適に作業出来るようになりました。

ありがとうございました。

時間ある時に動作確認して、コンテンツ内容も修正したいと思います。

今後ともよろしくお願いいたします。

Sampo

コマンドの連続実行は、| でももちろん結果的にできますが、 & が使えますよ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です