Windows においては各ファイルには「所有者」が設定されています。 あなたの手元にある適当なファイルをエクスプローラ上で「右クリック」「プロパティを選択」「セキュリティタブを選択」「詳細設定ボタンをクリック」とするとそのファイルの所有者が誰であるのか見ることが出来ます。 原則としてはあなたが起動したプログラムが生成したファイルはあなたが所有者です。 あなたが起動したプログラムはあなたの代理人としてあなたの権限でファイルを生成するのであって、プログラムごとに固有の権限があったりはしません。
ファイルの所有者が持つ権限はそのファイルの全てのアクセス許可を変更する権限です。 あなたはあなたが所有するファイルのアクセス許可を変更することが出来て、全てのアクセスを拒否するような設定も可能です。 あなた自身がそのファイルを読み書きできないように設定することも可能です。
Windows におけるアクセスコントロールは非常に細かく設定することも可能なのですが、その分だけ API が煩雑です。
- ファイルのセキュリティ記述子 (SID) を取得
- セキュリティ記述子に結びつけられたアクセスコントロールリスト (ACL) を取得
- ACL にアクセス制御エントリ (ACE) を追加
- SID に新しい ACL を設定
- SID をファイルに設定
というような手順が必要です。 以前の設定を引き継ぐ場合には更に以前の設定を取り出す操作なども必要になってきます。
ファイル以外の様々なリソースへのアクセス許可の管理と統合されているので資料も入り組んでいて難解ですが公式な資料はマイクロソフトのサイトで提供されているので読んでみるとよいでしょう。 (正直言って私も説明できるほど細かい理解は出来ていないのであくまで必要な資料を探すとっかかりを提示することしかできません。)
ちなみに icacls
というコマンドによっても制御が可能です。
基本理念自体がややこしいのでまずはエクスプローラでセキュリティ情報を見るなりいじるなりして考え方を理解しないと API 一覧を見ても何がなにやらわからないと思います。