日程Fit|「いつ空いてますか?」の往復はもう不要。候補日を選んでURLを送るだけ|登録不要|今すぐ無料で使う →

Windowsフォルダーのアクセス権継承を図解|有効化・無効化の違いと設定手順

結論から言うと、継承を止める必要があって迷った場合は、まず「継承されたアクセス許可を明示的なアクセス許可に変換」を選びます。現在の権限を残したまま親との連動だけを切れるためです。「継承されたアクセス許可をすべて削除」は、必要な明示的アクセス許可と復元手段を準備した場合だけ使います。

C:\Windows、Program Files、ユーザープロファイルのルート、アプリやサービスが使うフォルダーでは練習しないでください。誤ったDACLは自分、管理者、SYSTEM、バックアップ処理を締め出します。最初はテストフォルダーとテスト用標準ユーザーで確認します。

日程Fit。無料・登録不要。「いつ空いてる?」を、ひとつのリンクで。リンクを送って、○△×でかんたん日程調整。無料で日程を作る。
目次

継承を一言で理解する

Windowsのファイルやフォルダーには、誰に何を許可または拒否するかを並べたDACLがあります。DACL内の1件ずつの項目がACEです。親フォルダーのACEに「子へ伝える」指定があると、子フォルダーやファイルはそのACEを継承します。

  • 明示的なアクセス許可:そのフォルダー自体へ直接追加したACE
  • 継承されたアクセス許可:親フォルダーから伝わったACE
  • 継承元:そのACEが来た親のパス
  • 所有者:DACLを変更できる主体を決めるうえで重要な情報。ただし所有者であることと、通常の読み書き許可は同じではない

継承されるのは、親にあるすべてのACEではありません。ファイルへ伝える、子フォルダーへ伝える、直下だけに伝える、といった継承フラグを持つACEだけです。画面上の「継承元」列が親のパスなら継承ACE、「なし」なら明示ACEとして判断できます。

継承の有効化・無効化を操作する場所

  1. 対象フォルダーを右クリックし、[プロパティ]を開きます。
  2. [セキュリティ]タブで[詳細設定]を選びます。
  3. 上部の対象パスと所有者を確認します。別フォルダーを開いていないか、ここで止まって確認してください。

継承が有効ならボタンは[継承の無効化]、無効なら[継承の有効化]と表示されます。Windowsの版や管理方法で文言が多少違っても、[継承元]列と現在のACEを合わせて見れば状態を判断できます。

画像は従来の画面例です。現在の端末では表示名や並びが異なる場合がありますが、「親から受け取るACE」と「その場所へ直接設定したACE」を区別する考え方は同じです。

2つの無効化は何が違うか

選択肢現在の継承ACE親の今後の変更使う場面
明示的なアクセス許可に変換同じ内容を明示ACEとして残す受けなくなる現在のアクセスを保ち、子だけ例外にしたい
継承されたアクセス許可をすべて削除継承ACEだけを削除受けなくなる必要な明示ACEを準備済みで、継承ACEを残したくない
継承を有効化親の継承可能ACEを受ける受ける親の管理へ戻したい

「削除」を選んでも、対象に元から設定してある明示ACEは残ります。したがって「すべてのユーザーとグループが必ず消える」は正しくありません。ただし、現在のアクセスが継承ACEだけで成立しているフォルダーでは、結果として必要な管理者や利用者が見えなくなり、アクセス不能になります。

DACLの基礎として、DACL自体がない状態と、DACLはあるがACEが空の状態も別です。Microsoftの説明では、DACLがないオブジェクトは全員に完全アクセスを許しますが、空のDACLは誰にもアクセスを許しません。通常のGUI操作でこの違いを作り分ける必要はなく、独自ツールでDACLを消す回避策は使わないでください。

通常の継承がどう広がるか

次の図は、親の「フォルダA」へセキュリティグループを設定し、その下に子を作る例です。まず親へ明示ACEを設定します。

親のACEが子フォルダーやファイルへ継承できる指定を持つと、新しく作ったフォルダB、フォルダC、ファイルAへ伝わります。「新規作成したから」だけではなく、親ACEの継承フラグが条件です。

継承が有効な子では、親へ新しい継承可能ACEを追加すると、その変更も子へ伝わります。これにより、階層ごとに同じグループを手作業で追加せず管理できます。

変更前にデータとACLを保存する

権限変更前には、ファイル本体のバックアップとACLの記録を別々に用意します。ACL保存だけではデータを復元できず、通常のファイルコピーだけでは元の権限を正確に戻せない場合があります。

  1. 対象データを別媒体へバックアップし、少なくとも1ファイルを開けることを確認します。
  2. [セキュリティの詳細設定]で対象パス、所有者、各ACE、[継承元]を画面保存します。
  3. 管理者のコマンドプロンプトを開き、現在のDACLを表示・保存します。例では対象をD:\Data\Projectとしています。
icacls "D:\Data\Project"
icacls "D:\Data\Project" /save "%USERPROFILE%\Desktop\Project-acl.txt" /t /c

/tは配下も対象にし、/cは個別エラーがあっても処理を続けます。エラーは成功として扱わず記録してください。共有フォルダーなら、共有アクセス許可、UNCパス、対象ユーザーの[有効なアクセス]も別に記録します。

安全な手順:子フォルダーだけ例外にする

「親は共通権限のまま、特定の子だけ別のメンバーにしたい」という場面では、親ではなく例外にする子フォルダー自身を変更します。

  1. 例外にする子フォルダーの[プロパティ]→[セキュリティ]→[詳細設定]を開きます。
  2. [継承の無効化]を選び、最初は[継承されたアクセス許可をこのオブジェクトの明示的なアクセス許可に変換します]を選びます。
  3. [適用]後、既存の利用者と管理者がアクセスできることを確認します。管理用のセッションは閉じず、別の標準ユーザーで試します。
  4. 不要な明示ACEを1件ずつ削除し、ユーザー個人ではなく用途に合うセキュリティグループへ必要最小限の権限を設定します。
  5. 読み取り、作成、変更、削除のうち業務で必要な操作だけをテストし、結果を記録します。

変換前の構成例です。現在見えているアクセスを保ったまま切り離すのがポイントです。

フォルダBで変換を選ぶと、既存のACEは明示ACEとして残り、フォルダBは親から保護された状態になります。

その後に親へセキュリティグループCを追加しても、継承を止めたフォルダBには追加されません。継承が有効な兄弟のフォルダCとファイルAには伝わります。

同じ操作をコマンドで行う場合、/inheritancelevel:dが「無効化してコピー」に相当します。まずテストパスで実行してください。

icacls "D:\Data\Project" /inheritancelevel:d

「継承ACEを削除」を選ぶ前の必須確認

削除を使う目的は、親由来のACEを残さず、対象フォルダーへ用意した明示ACEだけで管理することです。変換後に不要ACEを個別削除できるなら、その方が確認しやすく安全です。

確認項目満たさない場合の危険
所有者を記録した復旧時にDACL変更権限を確保できない
管理者の明示ACEがある管理者でも通常操作で入れない
SYSTEMやサービスの必要権限を確認したアプリ、バックアップ、検索などが失敗する
業務グループの明示ACEがある利用者が読み書きできない
別セッションで有効なアクセスを確認した現在の管理セッションだけで成功と誤認する
ACL保存とデータバックアップがある誤設定を短時間で戻せない

削除前の構成をもう一度確認します。

「継承されたアクセス許可をすべて削除」を選ぶと、継承元が親だったACEが対象から外れます。図では継承ACEが中心だったためグループが消えていますが、一般には元からの明示ACEは残ります。

親へ後からグループを追加しても、保護されたフォルダBは受け取りません。ほかの継承有効な子には伝わります。

icacls "D:\AclLab\Child" /inheritancelevel:rは、継承を無効化して継承ACEを削除します。実運用パスへそのまま貼り付けず、テストフォルダーで結果を理解し、必要な明示ACEを確認した場合だけ使ってください。

継承を止めた親の下に新しい子を作るとどうなるか

親フォルダー自身が、さらに上の親からの継承を止めていることと、その親のACEを新しい子へ伝えることは別です。親上の明示ACEに子へ伝播する指定が残っていれば、新しく作った子はそれを継承できます。

次の図では、フォルダAにある継承可能なセキュリティグループAのACEを、新しいフォルダB、フォルダC、ファイルAが受け取っています。「親Aが上位から保護されているから子も必ず保護される」わけではありません。

期待どおりかは、新しく作ったテストファイルと子フォルダーの[継承元]を実際に確認してください。既存の子には個別の明示ACEや保護状態があるため、新規作成の結果だけで全階層を判断できません。

コピーと移動で権限が変わる理由

操作既定の考え方確認点
NTFS内でコピー新しいオブジェクトとしてコピー先親の権限を継承コピー元の明示ACEを保持するツール指定がないか
別NTFSボリュームへ移動実質コピーと削除となり、新しい親を継承暗号化、所有者、アプリ動作も確認
同じNTFSボリューム内で移動元の権限を保持する例外移動先親へ自動でそろうと期待しない
robocopy /SECデータ等に加えてセキュリティ情報をコピー『コピー先から継承する』操作とは別

権限をそろえる目的でファイルを別フォルダーへ移して戻す方法は、同一ボリュームか、コピーか、ツールのオプションかで結果が変わります。移動を権限リセットの代用にせず、icaclsと[継承元]で結果を確認します。

許可、拒否、有効なアクセスの読み方

ユーザーは複数のグループに所属するため、許可は通常累積します。一方、明示的な拒否は広い許可を打ち消す目的で使われ、意図しないグループにも影響しやすい設定です。Microsoftは、多くの場合は許可ACEで管理でき、拒否はグループ許可の一部メンバーを例外的に拒否するときに使うと説明しています。

  • 個人ユーザーへ直接付けるより、用途別のセキュリティグループへ許可する
  • 一般利用者へフル コントロールを付けず、必要なら変更、読み取りと実行などへ絞る
  • 拒否を追加する前に、不要な許可グループから外す設計で解決できないか確認する
  • 共有フォルダーはNTFSだけでなく共有アクセス許可も確認する

リモートの共有フォルダーで[有効なアクセス]を確認する場合、Microsoftはマップしたドライブ文字ではなく\\server\share\folderのようなUNCパスを使うよう案内しています。共有情報を評価できない警告が出る場合は、管理者権限やドメイン境界も確認します。

元に戻す方法

継承を再有効化する

GUIでは[セキュリティの詳細設定]で[継承の有効化]を選びます。コマンドでは次のとおりです。

icacls "D:\Data\Project" /inheritancelevel:e

再有効化すると親の継承可能ACEが追加されますが、対象に残っていた明示ACEが自動ですべて消えるわけではありません。重複や意図しない拒否がないか再確認します。

保存したDACLを復元する

保存時の相対パスに対応するルートから/restoreを実行します。前の例でProject配下を保存した場合の一例です。

icacls "D:\Data" /restore "%USERPROFILE%\Desktop\Project-acl.txt" /c

パス構造が変わっている保存ファイルを別環境へそのまま適用しないでください。復元後はicacls、所有者、共有アクセス許可、標準ユーザーの[有効なアクセス]を照合します。ACLファイルはDACLの保存であり、データやすべての共有設定を戻す万能バックアップではありません。

失敗したときの分岐

症状確認と対応
自分だけアクセス拒否所属グループ、拒否ACE、対象パスを確認。別の承認済み管理者セッションから復元
管理者でも入れない所有者とDACL変更権限を確認。保存ACLと変更記録を使い、闇雲に全員フル コントロールを付けない
親変更が子へ伝わらない子の継承状態、親ACEの継承フラグ、子の明示ACE、同一ボリューム移動履歴を確認
ローカルでは開けるが共有では拒否共有アクセス許可、UNCパス、NTFS、有効なアクセスを合わせて確認
一部サービスだけ失敗SYSTEMやサービスアカウントのACEを変更前記録と比較し、OS管理フォルダーなら変更を戻す
大量の子へ誤適用した追加変更を止め、保存ACLから限定範囲で復元。/resetを重ねない

よくある質問

「変換」を選ぶとアクセスできる人は変わりませんか?

変換直後は、継承ACEを同内容の明示ACEとして残すため、通常は見た目の権限を保ちます。ただし所有者、共有権限、動的なグループ所属なども実アクセスに関係するため、標準ユーザーで確認してください。

「削除」はAdministratorsやSYSTEMも消しますか?

それらが継承ACEなら削除対象になり、明示ACEなら残ります。名前だけで判断せず[継承元]列を確認します。必要な明示ACEがない状態で削除しないでください。

親の継承を止めれば、その下の子も自動で止まりますか?

同じ意味ではありません。親が上位から保護されていても、親上の継承可能ACEは新しい子へ伝わり得ます。既存の子には個別状態もあるため、それぞれの継承元を確認します。

「子オブジェクトのアクセス許可を置き換える」はいつ使いますか?

配下の個別DACLを親の継承可能ACEへそろえる必要があり、明示ACEを失う影響を確認できる場合だけです。全階層へ強く作用するため、ACL保存、対象件数、例外フォルダー、テスト結果を確認してから限定的に使います。

robocopy /SECを使えば継承を再現できますか?

/SECはセキュリティ情報をコピーする指定で、コピー先親から単純に継承させる操作ではありません。移行元のACLを保持するのか、移行先の親へそろえるのかを先に決め、テストコピーで確認します。

Microsoft公式資料

まとめ

継承の有効化は親の継承可能ACEを受け続ける状態、無効化の「変換」は現在のACEを残して連動を切る状態、「削除」は継承ACEを外して明示ACEだけにする状態です。例外の子フォルダーだけを変更し、データとACLを保存し、変換から始め、別ユーザーで有効なアクセスを確認してください。継承を戻すときも明示ACEは残り得るため、最終状態を確認して作業完了とします。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次