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

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

001

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

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

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

ICACLS D:\test

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

C:\Users\Administrator>ICACLS D:\test

D:\test BUILTIN\Administrators:(I)(OI)(CI)(F)
        NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
        CREATOR OWNER:(I)(OI)(CI)(IO)(F)
        BUILTIN\Users:(I)(OI)(CI)(RX)
        BUILTIN\Users:(I)(CI)(AD)
        BUILTIN\Users:(I)(CI)(WD)

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

002

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

takeown /F D:\test

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

ICACLS D:\test /setowner administrator

アクセス権限の継承

003

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

ICACLS D:\test /inheritance:e

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

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

004

アクセス権限の削除

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

ICACLS D:\test /remove:g administrator

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

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

ICACLS D:\test /inheritance:d /remove:g administrator

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

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

ICACLS D:\test /inheritance:d | ICACLS D:\test /remove:g administrator

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

5 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

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

コメントを残す

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