問題タブ [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.
c# - SetSecurityDescriptorSddlForm(string sddlForm)
この API によると、有用な Web サイトが見つかりません。
文字列の形式は何ですか? コンテンツ?
ありがとう
c# - || C# を使用したサービスの SACL || C# を使用して ACCESS_SYSTEM_SECURITY 権限を持つサービスへのハンドルを取得する
C# を使用してリモート サービスで SACL を取得する方法を知っている人はいますか? さまざまな方法を試しましたが、基本的に何も機能しません。ローカル マシンでは DACL と SACL を取得できますが、リモート マシンではどちらも取得できないようです。
私が行ったことは、クラスServiceSecurity
から継承し、クラスNativeObjectSecurity
のように機能するというクラスを作成することRegistrySecurity
です。以下は、私が持っている2つのコンストラクターです。
1 つ目はサービス名を使用し、2 つ目はサービスへのハンドルを想定しています。明らかに最初のものは DACL と SACL を取得するのに問題なく機能します。なぜなら、それはすべてローカルだからですServiceController
。ServiceHandle
それを取得した後、作成したクラスにサービスのプロパティを渡しますServiceSecurity
。その時点で Unauthorized Access 例外が発生します。これは、私のユーザー アカウントがドメインのドメイン管理者であり、ローカル サーバーであるため、正しくないようです。ターゲット ボックスの管理者。また、SeSecurityPrivilege
アクセスを許可する権利もあります。
誰にもアイデアはありますか?SafeHandle
私が得ているのは正しくないようですが、SafeHandle
プロパティはそれが閉じられておらず、有効なハンドルであると言っているので、何が起こっているのかよくわかりません.
データを取得するために使用しているコードは次のとおりです。
上記は、ローカルのアクセス許可と監査設定 (DACL と SACL) に対して機能します。ただし、ローカル マシンで動作するように設計されています。代わりにこれを行うと:
ServiceSecurity コンストラクターは、次のように SACL のローカル サーバーとリモート サーバーの両方で失敗しますが、DACL の場合は引き続き機能します。
AccessControlSections
accessSections については、Audit または Accessの 1 つだけを指定しています。Audit は、 ServiceHandle
.
ACCESS_SYSTEM_SECURITY
更新: したがって、SACL を取得できるように、権利を持つサービスへのハンドルを取得するにはどうすればよいのでしょうか?
security - SetNamedSecurityInfoを誤って使用していますか?ファイルのACLが適切に変更されていないようです
ファイルの特定のアクセス権限を有効または無効にしようとしています。これを行うには、DACLをいじる必要があることがわかりました。次のコードを使用して、ファイルのDACLを変更しています。
したがって、最初にfopen()を使用してファイルを作成し、Administratorsグループへのすべてのアクセスを許可するACLを作成してから、Administratorsグループへの書き込みアクセスを拒否します。
ただし、これらの呼び出しの後、ファイルへの読み取りアクセス権がありません。電話をかけない場合は、読み取り/書き込みアクセス権があります(予想どおり)。
管理者アカウントで実行していて、関数が正常に返されていることに注意してください。また、特定の制限されたユーザーのACLを変更しようとしましたが、同じことが起こります...ユーザーは、希望どおりに書き込みアクセスではなく、読み取りアクセスを拒否されます。
DENY_ACCESSをREVOKE_ACCESSに、SET_ACCESSをGRANT_ACCESSに、SET_ACCESS呼び出しを行わないなど、set_DACL_for_object()のさまざまな呼び出しの組み合わせを試しましたが、何も機能しないようです。
ほとんどのコードはこのMSDNの例から取得されたものであるため、機能するはずです。私は正確に何を間違っているのですか?
permissions - WiX アクセス許可、DACL フラグに関して「変更」を表現するにはどうすればよいですか
WiX 3.0.4318.0 インストーラーの一部としてフォルダーにカスタム権限を適用しようとしています。
エクスプローラーのセキュリティ プロパティ UI に関して、BUILTIN\Users の権限に変更を追加したいと考えています。明らかに、ユーザー名のローカリゼーションに対する回復力が必要です。したがって、これまでの私の調査に基づいて、少なくとも次のことが必要です。
質問:
私はサブディレクトリでこれを行っています - Permission と PermissionEx の間の選択が意味不明であると仮定するのは正しいですか?
エクスプローラーの [フォルダーのアクセス許可] ダイアログの [変更] は、権利の観点から何にマップされますか - 人々がそれをマジック ナンバーまたはフラグの大きなセットに変換した多くのサンプルを目にします - 他の人々が使用したもの (意図は許可することです)作成、読み取り、書き込み、追加、および削除。これは、「変更」としての単純な権利に関して UI で最もよく表現されます)。「M」と呼ばれる基本的なアクセス許可を見てきましたが、
icacls
それらを「特定の権利」にマップする方法がありません (で使用されている用語でicacls /?
)。Windows のヘルプに別のマッピング テーブルがあります。誰かがうまくいった信頼できる答えを持っていますか?
PermissionEx (WIX) に関する質問 に非常によく似た未回答の質問があります。これは残酷ですが、重複として引用するのは公平です。
c# - C#でプロセスDACLを変更する方法はありますか?
プロセスのDACLを変更するレガシーC++コードがあり、.NET3.5でマネージコードクラスを使用しようとしています。誰かがサービスのNativeObjectSecurityクラスを拡張するSetAclOnServicesクラスを作成したコードをWebで見つけました。これを実装して、ResourceType.ServiceをResourceType.KernelObjectに変更するだけでよいと思いましたが、GetAccessControlを呼び出すと、FileNotFoundエラーで失敗します。
windows - 名前付きパイプ セキュリティ DACL を表示するツールはありますか?
sysinternals の pipeacl と process explorer を使ってみました。
pipeacl でエラーが発生し、sysinternals は名前付きパイプのセキュリティをサポートしていないようです。
winapi - 空の DACL (セキュリティ記述子) でファイルを開くための Win32 API CreateFile
CreateFile を使用してファイルのハンドルを取得し、ACE をその DACL に追加しています。問題は、ファイルにアクセス許可がない場合、関数 CreateFile を呼び出すとアクセス拒否エラーが発生することです。私はファイルの所有者であり、管理者です。エクスプローラーを使用している場合は、アクセス許可を追加できます。
OpenFile や Set security descriptor などの他の機能には興味がありません。そのようなファイルを開くための適切な組み合わせに興味があります。
特定のアクセス権を使用する必要があることを MSDN で読みました。
CreateFile(lpFileName, READ_CONTROL | WRITE_DAC, 0, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS);
CreateFile(lpFileName, READ_CONTROL | WRITE_DAC, 0, NULL, OPEN_EXISTING, ACCESS_SYSTEM_SEURITY);
どちらもアクセスが拒否されます。何か案は?
ありがとう、ガビ
winapi - CreateFile()で、標準ユーザーEverybodyに読み取り専用権限を割り当てる最も簡単な方法は何ですか。そして、他の誰にも許可はありません
Windowsには、アクセス制御をユーザー/グループ「Everybody」のみに設定する必要があるアプリケーションがあります。また、権限を読み取り専用に設定します。Linuxでは、8進数のパーミッションを使用した単純なopen()
呼び出しで十分です。004
Windowsで、同じことをどのように達成しますか?できればへの呼び出しでCreateFile()
。
winapi - 自分が生成したプロセスが子プロセスを生成しないようにするにはどうすればよいですか?
私の Windows XP/7 プログラムは、操作の一部として Windows API の CreateProcess() 関数を使用して子プロセスを起動します。アプリケーションを 1 つだけ特定の方法で「サンドボックス化」できるようにしたいと考えています。子プロセスに独自のプロセス (孫) を生成させたくありません。フックや DLL インジェクション (または IAT パッチ) を行わずにこれを行う方法はありますか?
プロセスのセキュリティとアクセス権に関する次の MSDN ページを見ました。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684880(v=vs.85).aspx
次のプロセス固有のアクセス権に気付きました。
サスペンド状態で子プロセスを起動し、XOR 操作を介してそのアクセス権を削除し、子プロセスのアクセス権を SetSecurityDescriptor() で更新し、再開して独自の子プロセスを作成しないようにすることはできますか? または、代わりにディスク上のEXEファイルに適用する必要がありますか? これは機能しますか?
もしそうなら、SetSecurityDescriptor() を使用して、これを適切に行うニュアンスを示す良いコード サンプルをいただければ幸いです。このアプローチがうまくいかない場合は、アイデアやヒントをいただければ幸いです。