1

ほとんどのファイルをディレクトリに保持するアプリがあり、作成したプログラムを誰が実行しているかに関係なく、そのディレクトリ内のすべてのファイルをすべてのユーザーが読み書きできるようにする必要があります。

Indigo Rose の SetupFactory を使用してアプリをインストールしており、On Post Install で許可機能を使用しています。

File.SetPermissions(SessionVar.Expand("%AppFolder%"), 
    SID_EVERYBODY, SET_ACCESS, ALL_PERMISSIONS, SUB_CONTAINERS_AND_OBJECTS_INHERIT);

そして、ほとんどの場合、これは機能します。ディレクトリはアクセス可能であり、1 つのことを除いてすべてアクセス可能です。

構成ファイルを作成するユーティリティ プログラムがあります。管理者として実行すると、作成されるファイルに他のユーザーはアクセスできなくなります。そのプロパティは、「SYSTEM」、「Admin」、および「Administrators」のみにアクセスを許可します。管理者として実行している場合、メモ帳、Windows エクスプローラー、コマンドラインでのリダイレクトなどによって作成したファイルは、必要に応じて「すべてのユーザー」と「認証済みユーザー」にアクセスを許可します。ディレクトリによって提供されるアクセス権、およびディレクトリには「このフォルダー、サブフォルダー、およびファイル」に適用されます。

問題は、この 1 つのアプリによって作成されたこの 1 つのファイルが、ディレクトリからアクセス許可を継承していないのはなぜですか?

アプリに変なところはありません。これは、メモリ内に文字列を作成し、次のようにファイルに書き込む単純な C# アプリです。

FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);

どうすればもっと簡単になるのかわかりません。しかし、何がうまくいかないのでしょうか?

4

0 に答える 0