問題タブ [dacl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winapi - AccessCheck が GenericMapping を DACL に適用しないのはなぜですか?
AccessCheck 関数は、GenericMapping パラメーターを取得します。このパラメーターは何に使用されますか? 以前に MapGenericMask を DesiredAccess に適用する必要があるため、DesiredAccess パラメーターには使用されません。
これを行うCプログラムを使用して発見したため、SecurityDescriptorに含まれるDACLにも適用されません。
- 現在のスレッド トークンを開く
- トークンから所有者とデフォルト グループを使用してセキュリティ記述子を作成し、所有者に GENERIC_ALL を付与する DACL を作成する "D:(A;;GA;;;ownerSID)"
- GENERIC_MAPPING をセットアップします。これは、(とりわけ) GenericAll を私の OWN_READ | にマップします。OWN_WRITE (0x0001 および 0x0002 として定義)
- 上記で作成したセキュリティ記述子、スレッド トークン、DesiredAccess としての OWN_READ、記述された GENERIC_MAPPING を使用して AccessCheck を呼び出します。
ただし、これはアクセス拒否エラーで失敗します。セキュリティ記述子を「D:(A;;0x0001;;;ownerSID)」に変更すると、アクセスが許可されます。これは、AccessCheck が GenericMapping パラメーターを使用して、DACL の汎用アクセス フラグ (GA/GW/GR/GX) を特定のアクセス権に変換していないことを示しています。なんで?私は何か間違ったことをしていますか?
https://msdn.microsoft.com/de-de/library/windows/desktop/aa374815(v=vs.85).aspxは、セキュリティ記述子の設定方法に関するヒントを提供しません。
winapi - CNG キーの DACL でのアクセス マスクのマッピング
(注: IMO の質問は主に WinAPI と DACL に関するものであり、CNG に関するものではないので、読み進めてください!)
私は現在、Microsoft の Cryptographic Provider Development Kit のサンプル CNG キー ストレージ プロバイダーを、キーが単一のファイルに格納されないように変更しようとしています。ただし、秘密鍵に割り当てることができるセキュリティ記述子に問題があります。
Windows Server 管理コンソールの証明書スナップインでは、証明書の秘密キーを管理できます。つまり、キーの所有者、DACL、および SACL を変更できます。これにより、セキュリティ記述子をパラメータとして NCryptSetProperty 呼び出しが行われます。DACL の場合、スナップインは「フル コントロール」または「読み取り」の許可/拒否のみを許可するため、ACE のアクセス マスクに GENERIC_ALL または GENERIC_READ ビットが設定されます。
私が学んだように、これらの汎用ビットはアプリケーション固有の権利にマップする必要があります。そうしないと、AccessCheck は機能しません。しかし、私は本当にこれを手作業で行う必要がありますか???
CreatePrivateObjectSecurity+SetPrivateObjectSecurity は常に機能するとは限りません。これは、CreatePrivateObjectSecurity が入力セキュリティ記述子の所有者とグループについて非常にうるさいためです。さらに、マッピングが適用されると、アクセス マスクのジェネリック ビットがクリアされるため、スナップインで誤った設定が表示されます (前述したように、スナップインは現在のアクセス許可を表示するときに GA ビットと GR ビットのみを考慮します)。
ここにいくつかのピースが欠けているようです...
windows - Windows DACL の ACE エントリ SYSTEM の目的は何ですか?
Windows DACL で FULL CONTROL を許可する ACE エントリ SYSTEM の目的は何ですか? 私が見た限り、それは常にそこにあるようです (そうですか?) が、その目的についての説明は見つかりませんでした。
powershell - 値が変更された新しいオブジェクトにオブジェクトをコピーする
ACL オブジェクトを取得して を置き換え、Access.IdentityReference.Value
残りのオブジェクトをそのまま維持して、Set-Acl
を別のシステムに適用できるようにする必要があります。
これを行うには非常に多くの方法がありますが、ターゲット値を見つけて置き換えることで、元のオブジェクトの残りを失うことができました。
編集:このコードを試すと:
次のエラーが表示されます。
Edit2:新しいスクリプトですが、まだ完成していません:
次のエラーが表示されます。