[コマンドプロンプト] icaclsコマンドの使い方 – アクセス権限の制御

icaclsコマンドは、Windowsでファイルやフォルダのアクセス権限を表示・変更するためのツールです。

主な用途は、アクセス制御リスト(ACL)の表示、変更、バックアップ、復元です。

基本的な使い方として、icacls <ファイル名>で指定したファイルやフォルダのアクセス権限を表示できます。

権限の変更には/grant(許可)、/deny(拒否)、/remove(削除)などのオプションを使用します。

バックアップは/save、復元は/restoreで行います。

この記事でわかること
  • icaclsコマンドの基本的な使い方
  • アクセス権限の種類と意味
  • 権限の設定や変更方法
  • 応用例による実践的な活用法
  • 注意点を踏まえた安全な運用方法

目次から探す

icaclsコマンドとは

icaclsコマンドは、Windowsのコマンドプロンプトで使用されるツールで、ファイルやフォルダのアクセス権限を管理するために利用されます。

このコマンドを使用することで、特定のユーザーやグループに対して、読み取り、書き込み、実行などの権限を設定したり、変更したりすることができます。

icaclsは、従来のcaclsxcaclsコマンドの後継として登場し、より多くの機能と柔軟性を提供しています。

特に、アクセス権限のバックアップや復元、権限の継承設定などが可能で、システム管理者やユーザーがファイルシステムのセキュリティを強化するために非常に役立つツールです。

コマンドの使い方を理解することで、より安全な環境を構築することができます。

icaclsコマンドの基本的な使い方

アクセス権限の表示

icaclsコマンドを使用して、ファイルやフォルダの現在のアクセス権限を表示することができます。

以下のコマンドを実行します。

icacls "ファイルまたはフォルダのパス"
icacls "C:\example\file.txt"
C:\example\file.txt NT AUTHORITY\SYSTEM:(I)(F)
                     BUILTIN\Administrators:(I)(F)
                     BUILTIN\Users:(I)(R)

アクセス権限の変更

特定のユーザーやグループのアクセス権限を変更するには、/grantオプションを使用します。

以下のコマンドで権限を変更できます。

icacls "ファイルまたはフォルダのパス" /grant ユーザー名:権限
icacls "C:\example\file.txt" /grant User1:(F)

このコマンドは、User1に対してフルコントロールの権限を付与します。

アクセス権限の追加

既存のアクセス権限に新たに権限を追加するには、/grantオプションを再度使用します。

icacls "ファイルまたはフォルダのパス" /grant ユーザー名:権限 /c
icacls "C:\example\file.txt" /grant User2:(R) /c

このコマンドは、User2に対して読み取り権限を追加します。

アクセス権限の削除

特定のユーザーやグループのアクセス権限を削除するには、/removeオプションを使用します。

icacls "ファイルまたはフォルダのパス" /remove ユーザー名
icacls "C:\example\file.txt" /remove User1

このコマンドは、User1の権限を削除します。

アクセス権限のバックアップ

現在のアクセス権限をバックアップするには、/saveオプションを使用します。

icacls "フォルダのパス" /save "バックアップファイルのパス"
icacls "C:\example" /save "C:\backup\permissions.txt"

このコマンドは、C:\exampleフォルダの権限をpermissions.txtにバックアップします。

アクセス権限の復元

バックアップしたアクセス権限を復元するには、/restoreオプションを使用します。

icacls "バックアップファイルのパス" /restore
icacls "C:\backup\permissions.txt" /restore

このコマンドは、permissions.txtに保存された権限を復元します。

icaclsコマンドのオプション一覧

/grantオプションの使い方

/grantオプションは、特定のユーザーやグループに対してアクセス権限を付与するために使用します。

権限の指定は、以下のように行います。

icacls "ファイルまたはフォルダのパス" /grant ユーザー名:権限
icacls "C:\example\file.txt" /grant User1:(R,W)

このコマンドは、User1に対して読み取り(R)と書き込み(W)の権限を付与します。

/denyオプションの使い方

/denyオプションは、特定のユーザーやグループに対してアクセス権限を拒否するために使用します。

icacls "ファイルまたはフォルダのパス" /deny ユーザー名:権限
icacls "C:\example\file.txt" /deny User2:(R)

このコマンドは、User2に対して読み取り権限を拒否します。

/removeオプションの使い方

/removeオプションは、特定のユーザーやグループのアクセス権限を削除するために使用します。

icacls "ファイルまたはフォルダのパス" /remove ユーザー名
icacls "C:\example\file.txt" /remove User1

このコマンドは、User1の権限を削除します。

/inheritanceオプションの使い方

/inheritanceオプションは、ファイルやフォルダの権限の継承設定を変更するために使用します。

継承を有効または無効にすることができます。

icacls "ファイルまたはフォルダのパス" /inheritance {e|d}
  • e: 継承を有効にする
  • d: 継承を無効にする
icacls "C:\example" /inheritance d

このコマンドは、C:\exampleフォルダの権限の継承を無効にします。

/setownerオプションの使い方

/setownerオプションは、ファイルやフォルダの所有者を変更するために使用します。

icacls "ファイルまたはフォルダのパス" /setowner ユーザー名
icacls "C:\example\file.txt" /setowner User1

このコマンドは、file.txtの所有者をUser1に変更します。

/saveオプションの使い方

/saveオプションは、現在のアクセス権限をバックアップするために使用します。

icacls "フォルダのパス" /save "バックアップファイルのパス"
icacls "C:\example" /save "C:\backup\permissions.txt"

このコマンドは、C:\exampleフォルダの権限をpermissions.txtにバックアップします。

/restoreオプションの使い方

/restoreオプションは、バックアップしたアクセス権限を復元するために使用します。

icacls "バックアップファイルのパス" /restore
icacls "C:\backup\permissions.txt" /restore

このコマンドは、permissions.txtに保存された権限を復元します。

アクセス権限の詳細

権限の種類と意味

Windowsのファイルシステムには、さまざまなアクセス権限があり、それぞれ異なる意味を持っています。

主な権限は以下の通りです。

スクロールできます
権限名意味
フルコントロールファイルやフォルダに対するすべての操作が可能
読み取りファイルやフォルダの内容を表示できる
書き込みファイルやフォルダの内容を変更できる
実行プログラムを実行できる
削除ファイルやフォルダを削除できる
変更ファイルやフォルダの属性を変更できる

フルコントロールと読み取り専用の違い

フルコントロール権限は、ファイルやフォルダに対してすべての操作を行うことができる権限です。

これには、読み取り、書き込み、削除、属性の変更、さらには他のユーザーへの権限の付与も含まれます。

一方、読み取り専用権限は、ファイルやフォルダの内容を表示することはできますが、変更や削除はできません。

このため、フルコントロールを持つユーザーは、ファイルの管理や設定を自由に行えるのに対し、読み取り専用のユーザーは内容を確認するだけの制限があります。

特定のユーザーに権限を付与する方法

特定のユーザーに対して権限を付与するには、icaclsコマンドを使用します。

以下のコマンドで、指定したユーザーに権限を付与できます。

icacls "ファイルまたはフォルダのパス" /grant ユーザー名:権限
icacls "C:\example\file.txt" /grant User1:(R,W)

このコマンドは、User1に対して読み取り(R)と書き込み(W)の権限を付与します。

グループに対する権限の設定

特定のユーザーだけでなく、グループに対しても権限を設定することができます。

グループに権限を付与することで、複数のユーザーに一度に同じ権限を与えることが可能です。

以下のコマンドを使用します。

icacls "ファイルまたはフォルダのパス" /grant グループ名:権限
icacls "C:\example\file.txt" /grant Administrators:(F)

このコマンドは、Administratorsグループに対してフルコントロール(F)の権限を付与します。

これにより、グループ内のすべてのユーザーが指定された権限を持つことになります。

icaclsコマンドの応用例

フォルダ全体に対する権限の一括設定

特定のフォルダ内のすべてのファイルとサブフォルダに対して、一括で権限を設定することができます。

/grantオプションと/tオプションを組み合わせて使用します。

icacls "フォルダのパス" /grant ユーザー名:権限 /t
icacls "C:\example" /grant User1:(R,W) /t

このコマンドは、C:\exampleフォルダ内のすべてのファイルとサブフォルダに対して、User1に読み取り(R)と書き込み(W)の権限を付与します。

サブフォルダやファイルに対する権限の継承

フォルダに設定した権限は、デフォルトでそのサブフォルダやファイルに継承されます。

継承を有効にするには、/inheritanceオプションを使用します。

icacls "フォルダのパス" /inheritance e
icacls "C:\example" /inheritance e

このコマンドは、C:\exampleフォルダ内のサブフォルダやファイルに対して、権限の継承を有効にします。

特定のユーザーにのみアクセスを許可する方法

特定のユーザーにのみアクセスを許可し、他のユーザーには拒否する場合、/grant/denyオプションを組み合わせて使用します。

icacls "ファイルまたはフォルダのパス" /grant ユーザー名:権限 /deny 他のユーザー名:権限
icacls "C:\example\file.txt" /grant User1:(R,W) /deny User2:(R)

このコマンドは、User1に対して読み取り(R)と書き込み(W)の権限を付与し、User2に対して読み取り権限を拒否します。

アクセス権限の一括バックアップと復元

フォルダ内のすべてのファイルとサブフォルダのアクセス権限を一括でバックアップするには、/saveオプションを使用します。

復元する際は、/restoreオプションを使用します。

バックアップ実行例:

icacls "C:\example" /save "C:\backup\permissions.txt" /t

復元実行例:

icacls "C:\backup\permissions.txt" /restore

これにより、C:\exampleフォルダ内のすべての権限がpermissions.txtにバックアップされ、必要に応じて復元できます。

ネットワークドライブ上のファイルに対する権限設定

ネットワークドライブ上のファイルに対しても、icaclsコマンドを使用して権限を設定できます。

ネットワークパスを指定するだけで、通常のファイルと同様に権限を管理できます。

icacls "\\ネットワークパス\フォルダ名" /grant ユーザー名:権限
icacls "\\NetworkDrive\example" /grant User1:(F)

このコマンドは、ネットワークドライブ上のexampleフォルダに対して、User1にフルコントロール(F)の権限を付与します。

これにより、ネットワーク上のファイルに対しても適切なアクセス権限を設定できます。

icaclsコマンドの注意点

誤った権限設定によるトラブルの回避方法

icaclsコマンドを使用して権限を設定する際、誤った設定を行うと、ファイルやフォルダへのアクセスが制限されることがあります。

これを回避するためには、以下のポイントに注意してください。

  • 事前にバックアップを取る: 権限を変更する前に、現在の権限をバックアップしておくことが重要です。

/saveオプションを使用して、権限のバックアップを行いましょう。

  • テスト環境で確認する: 本番環境で変更を行う前に、テスト環境で権限設定を試してみると安全です。
  • 権限の確認を行う: 変更後は、icaclsコマンドで権限が正しく設定されているか確認しましょう。

システムファイルに対する権限変更のリスク

システムファイルやフォルダに対して権限を変更することは、システムの安定性やセキュリティに影響を与える可能性があります。

特に、重要なシステムファイルに対してフルコントロールを付与したり、削除権限を与えたりすると、システムが正常に動作しなくなることがあります。

したがって、システムファイルに対する権限変更は慎重に行う必要があります。

権限の継承に関する注意点

権限の継承は、フォルダ内のすべてのファイルやサブフォルダに対して自動的に権限を適用する便利な機能ですが、誤った設定を行うと意図しないユーザーに権限が付与されることがあります。

継承を無効にする場合は、影響を受けるファイルやフォルダを確認し、必要に応じて個別に権限を設定することが重要です。

また、継承を有効にした場合でも、特定のファイルに対して個別に権限を設定することができるため、適切に管理することが求められます。

icaclsコマンドの実行に管理者権限が必要な理由

icaclsコマンドを使用して権限を変更するには、通常、管理者権限が必要です。

これは、ファイルやフォルダのアクセス権限はシステムのセキュリティに直結しているため、誤った操作によってシステム全体に影響を与える可能性があるからです。

管理者権限を持つユーザーのみが、重要なシステムファイルや他のユーザーのファイルに対して権限を変更できるようにすることで、セキュリティを強化しています。

したがって、icaclsコマンドを実行する際は、必ず管理者としてコマンドプロンプトを起動するようにしましょう。

よくある質問

icaclsコマンドでアクセス権限が反映されないのはなぜ?

アクセス権限が反映されない場合、いくつかの原因が考えられます。

まず、権限の設定が正しく行われていない可能性があります。

コマンドの構文やユーザー名、権限の指定を再確認してください。

また、権限の継承が無効になっている場合、親フォルダからの権限が適用されないことがあります。

さらに、コマンドプロンプトを管理者として実行していない場合、権限変更が適用されないこともあります。

これらの点を確認し、必要に応じて再度設定を行ってください。

特定のユーザーにだけ権限を付与するにはどうすればいい?

特定のユーザーにのみ権限を付与するには、icaclsコマンドを使用して、そのユーザーに対して明示的に権限を設定します。

以下のコマンドを実行します。

icacls "ファイルまたはフォルダのパス" /grant ユーザー名:権限

例えば、User1に対して読み取り(R)と書き込み(W)の権限を付与する場合は、次のようにします。

icacls "C:\example\file.txt" /grant User1:(R,W)

このようにすることで、指定したユーザーにのみ権限を付与することができます。

他のユーザーには影響を与えません。

icaclsコマンドで設定した権限を元に戻す方法は?

設定した権限を元に戻すには、icaclsコマンドの/removeオプションを使用して、特定のユーザーの権限を削除することができます。

また、バックアップを取っている場合は、/restoreオプションを使用して、以前の状態に復元することも可能です。

権限を削除する場合のコマンドは以下の通りです。

icacls "ファイルまたはフォルダのパス" /remove ユーザー名
icacls "C:\example\file.txt" /remove User1

バックアップから復元する場合は、次のようにします。

icacls "バックアップファイルのパス" /restore
icacls "C:\backup\permissions.txt" /restore

これにより、設定した権限を元に戻すことができます。

まとめ

この記事では、icaclsコマンドを使用してファイルやフォルダのアクセス権限を管理する方法について詳しく解説しました。

具体的には、基本的な使い方やオプションの一覧、応用例、注意点などを通じて、権限設定の重要性とその操作方法を紹介しました。

これを機に、実際にicaclsコマンドを活用して、自分の環境におけるファイルやフォルダのセキュリティを強化してみてください。

  • URLをコピーしました!
目次から探す