2

私の要件は次のとおりです。

  1. 指定した場所にディレクトリを作成します。
  2. フォルダが「読み取り専用」になるように属性を設定します。つまり、ユーザー アカウントは、このフォルダー内にフォルダー/ファイルを作成できないようにする必要があります。

これで、次のようにディレクトリを作成できます。

SHCreateDirectoryEx( NULL, <path>.c_str(), NULL );

適切なセキュリティ属性を設定したいと思います。ヘルプ/コード例をいただければ幸いです。

プラットフォーム: Win7 (言語: C++/C)

4

1 に答える 1

4

最初に行うことは、SECURITY_ATTRIBUTES構造体を作成し、そのメンバーを設定することです。

SECURITY_ATTRIBUTES SecAttr;

SecAttr.size = sizeof(SECURITY_ATTRIBUTES); //Set size of structure

次のメンバーは、SECURITY_DESCRIPTORこのオブジェクトへのセキュリティアクセスを管理するために必要なすべてのデータを実際に含むタイプです。

MSDNのドキュメントに従って、この構造体を直接作成することはできませんが、ドキュメントで提供されている関数を使用してそのような構造体を作成し、必要に応じて必要なすべてのフラグを設定してから、に渡すポインタを取得しますSecAttr

SECURITY_DESCRIPTORこのような構造体を作成する方法の例は、ここにあります。この例では、レジストリキーに対して実行されますが、原則は同じです。

基本的に、オブジェクトに持たせたいアクセス(読み取り/書き込み/読み取り専用)などの適切なプロパティを備えたDACL(随意セキュリティアクセス制御リスト)またはSACL(システムアクセス制御リスト)を入力します。

構造体全体に入力したら、SECURITY_ATTRIBUTESそれを関数に渡すことができますSHCreateDirectoryEx

于 2013-03-07T14:45:01.587 に答える