問題タブ [privileges]
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.
python - スクリプトのユーザーがrootのような特権を持っているかどうかを確認するための最良の方法は何ですか?
/ etc内のファイルの移動、apt-getを使用したインストールなど、ルートレベルの権限を必要とする多くのことを実行するPythonスクリプトがあります。私は現在持っています:
これはチェックを行うための最良の方法ですか?他にベストプラクティスはありますか?
iis - System.DirectoryServicesに必要なユーザー権限
System.DirectoryServicesを使用して、サーバーで実行されているWebサイトのステータスを一覧表示しています。現在、これを実行するために管理者アカウントのなりすましを使用していますが、最低限の権限を持つ特定のユーザーアカウントが必要です。
誰かが私を正しい方向に向けることができますか?
c++ - Windows Vista/Windows 7 権限: SeDebugPrivilege & OpenProcess
必要に応じて適切な特権にエスカレートすることについて私が見つけたものはすべて、私の現在の方法と一致していますが、問題は存在します。誰かが Windows Vista/Windows 7 の内部の経験を持ち、暗闇しかないところに光を当てることができることを願っています。長くなると思いますが、ご了承ください。
環境
現在のマシン上の他のプロセスのメモリにアクセスする必要があるアプリケーションに取り組んでいます。これには、明らかに管理者権限が必要です。また、必要SeDebugPrivilege
です (いいえ、スペルミスではありませんSetDebugPrivilege
)。これは正しく取得していると思いますが、これ以上の特権が必要ないのか、それが問題の原因なのか疑問に思います。これまでのところ、コードは Windows XP のすべてのバージョン、および私のテスト用の Vista 32 ビット環境と Windows 7 64 ビット環境で正常に動作しています。
プロセス
- プログラムは常に管理者権限で実行されます。これは、この投稿全体で想定できます。
Access Token
現在のプロセスのインクルードSeDebugPrivilege
権をエスカレートしています。EnumProcesses
システム上の現在の PID のリストを作成するために使用する- アクセス権を使用
OpenProcess
してハンドルを開くPROCESS_ALL_ACCESS
ReadProcessMemory
他のプロセスのメモリを読み取るために使用します。
問題:
開発中および個人的なテスト中 (Windows XP 32 & 64、Windows Vista 32、および Windows 7 x64 を含む) はすべて正常に動作しています。ただし、同僚の Windows Vista (32 ビット) と Windows 7 (64 ビット) の両方のマシンへのテスト展開中に、一般的なエラーでOpenProcess
失敗する特権/権利の問題があるようです。Access Denied
これは、制限付きユーザーとして実行している場合 (予想どおり) と、管理者として明示的に実行している場合 (右クリック →管理者として実行、および管理者レベルのコマンド プロンプトから実行した場合) の両方で発生します。
ただし、この問題は、私のテスト環境では再現できませんでした。私は問題を直接目撃したので、問題が存在すると信じています。実際の環境とテスト環境で識別できる唯一の違いは、UAC プロンプトでドメイン管理者アカウントを使用すると実際のエラーが発生するのに対し、私のテスト (エラーなしで動作) ではローカル管理者アカウントを使用することです。 UAC プロンプト。
OpenProcess
使用されている資格情報により、UAC は「管理者として実行」できますが、プロセスは別のプロセスで実行できる正しい権限をまだ取得していないようです。私は、Vista/Windows 7 の内部構造に精通していないため、これが何であるかを知ることができません。誰かが原因を突き止めてくれることを願っています。
キッカー
RunWithDebugEnabled
このエラーを報告した人で、その環境で定期的にこのバグを再現できる人は、自分の権限をエスカレートし、渡された実行可能ファイルを起動するように見える小さなブートストラップ プログラムに沿って名前が付けられた小さなアプリケーションを持っていますエスカレートされた特権)。UAC プロンプトで同じドメイン管理者の資格情報を使用してこのプログラムを実行すると、プログラムは正常に動作し、意図したとおりに正常に呼び出しOpenProcess
て動作することができます。
したがって、これは間違いなく正しい権限を取得する際の問題であり、ドメイン管理者アカウントは正しい権限にアクセスできるはずの管理者アカウントであることがわかっています。(もちろん、このソース コードを入手できれば素晴らしいことですが、それが可能であれば私はここにいません)。
ノート
前述のとおり、失敗したOpenProcess
試行によって報告されるエラーは次のとおりAccess Denied
です。のMSDNドキュメントによるとOpenProcess
:
呼び出し元が SeDebugPrivilege 特権を有効にしている場合、セキュリティ記述子の内容に関係なく、要求されたアクセスが許可されます。
これにより、これらの条件下では、(1) 取得SeDebugPrivileges
または (2) MSDN ドキュメントで言及されていない他の権限の要求のいずれかで問題が発生し、ドメイン管理者アカウントとローカル管理者の間で異なる可能性があると思われます。アカウント
サンプルコード:
ありがとう!
上記の条件下でWindows VistaおよびWindows 7で別のプロセスを正しく開くために欠落している可能性のある許可、特権、権利などについて誰かが洞察を持っている場合(実行可能ファイルが適切に「管理者として実行」されていると仮定) 、それは非常に高く評価されます。
完全に困惑していなければ、私はここにいないでしょうが、グループの経験と知識が再び輝きを放つことを願っています. この長い文章を読んでいただき、ありがとうございます。善意だけでもありがたいです。スタック オーバーフローをすべての人にとって便利なものにしてくれていることに感謝します。
python - Python-ユーザーが管理者権限を持っているかどうかを確認する
私はPython3.xで自己学習プロジェクトとして小さなプログラムを書いています。私の考えは、プログラムがユーザーに2つのテキスト入力フィールドを許可し、ユーザーの入力を2つの特定のレジストリキーの値にプラグインすることです。
現在のユーザーがレジストリにアクセスできるかどうかを確認する簡単な方法はありますか?制限された領域にアクセスしようとしているため、プログラムが混乱してクラッシュするよりも、管理者権限が必要であることをユーザーに明確に伝えたいと思います。
プログラムが起動したらすぐに、ユーザーに入力オプションが与えられる前に、このチェックを実行したいと思います。これにはどのようなコードが必要ですか?
編集:それが明らかでない場合、これはWindowsプラットフォーム用です。
php - ユーザー間のファイルと権限を管理する PHP CMS
次のことができる PHP CMS を探しています。
1-表示、印刷、またはダウンロードを許可することにより、ユーザー間でファイル (pdf、words..) をアップロードおよび管理します。
2-誰がいつ何にアクセスしたか、誰がいつ何をダウンロードしたか、誰がいつ何をしたかを知る。
c++ - 管理者アカウントからシステム(または同等のもの)を偽装する
この質問は、私が現在扱っている特権の問題についてのこの質問のフォローアップと続きです。
問題の概要:特権
を持たないドメイン管理者アカウントでプログラムを実行していますが、ローカルマシンで必要です。Debug programs (SeDebugPrivilege)
Klugeyソリューション:
プログラムは、ローカルマシンにサービスとして自分自身をインストールし、サービスを開始できます。このサービスはSYSTEM
アカウントで実行されるようになりました。これにより、SeTCBPrivilege
特権を使用して、を含む新しいアクセストークンを作成できますSeDebugPrivilege
。次に、新しく作成されたトークンを使用して、昇格された権限で最初のプログラムを再起動できます。
私は個人的にこの解決策が好きではありません。サービスのインストールなどのシステム変更をしなくても、管理者として必要な権限を取得できるはずだと思います(一時的なものでも)。
システムの変更を最小限に抑え、できればオンザフライで実行できるソリューションがあることを望んでいます(つまり、自分自身を再起動する必要はありません)。既知のSYSTEMプロセス(csrss.exeなど)を実行しようLogonUser
として失敗しました(取得しようとしている特権がないとプロセスのハンドルを取得できないため、失敗します)。SYSTEM
OpenProcessToken
OpenProcess
PROCESS_QUERY_INFORMATION
私は、この問題の代替解決策を考え出そうとしているところです。ホストマシンで特権トークンを取得してこのプログラムに偽装する簡単な方法があることを望んでいましたが、方法が見つかりませんでした。
誰かがこれを回避する方法を知っているか、うまくいくかもしれないことについての提案さえあれば、私に知らせてください。私は本当に助けに感謝します、ありがとう!
security - Web アプリから sudo を使用してシェル スクリプトを実行する
Web アプリケーションでサーバーの OS とやり取りする機能がいくつかあります。私は bash スクリプトを作成し、アプリ内から実行できます。
ただし、スクリプトの一部の機能にはスーパーユーザー権限が必要です。
このスクリプトを安全に実行する最も健全な方法は何ですか? Webフォームから引数が渡されていますが、haxxorしないと信頼している認証済みユーザーのみが呼び出すことができるはずです。
privileges - psql コンソールで関数へのアクセス許可を確認する方法
psql コンソールを使用して関数へのアクセス許可を確認する方法を教えてください。
windows - Windows でプロセス固有の権限を付与する方法
ソースコードを受け取り、サーバー上でコンパイルし、実行し、データベースから入力を転送し、出力をキャッチし、データベース内の出力と比較して正しいかどうかを確認するテストソフトウェアを作成しています。問題は、ソース コードが何でもかまいません (c/c++ で記述され、Visual Studio cl でコンパイルされている) ため、何らかの形で悪意のあるユーザーを防止する必要があることです。それらのプロセスが一定時間以上実行されたり、許可されているよりも多くのメモリを使用したりすると、それらのプロセスを自動的に強制終了します。
問題は、これらのプロセスに標準の入出力ストリームからの書き込みと読み取りのみを許可し、Windows でのその他のアクセス権を拒否することだけを許可できるかということです。
私の英語を許してください。
前もって感謝します。
c++ - Windows ユーザーがアプリケーションをインストールできるかどうかを確認する方法は? または Windows コンピューターはドメインのメンバーですか?
社内で使用するアプリケーションに自動更新メカニズムを再実装しています。古いシステムでは .exe ベースのインストーラーを使用していましたが、これを Windows ドメインで動作する .msi ベースのインストーラーに置き換える必要がありました。これは私が行ったもので、うまく機能します。
本社のユーザーのほとんどは Windows ドメインのメンバーですが、ドメイン外の遠隔地のユーザーも多数います。ドメイン内のユーザーには、更新を自動的に配布します。リモート ユーザーは、アプリケーションに組み込まれている自動更新メカニズムを使用する必要があります。
問題は 、Windows ユーザーが自分のマシンにアプリケーションをインストールできるかどうかを確認する方法です。 または Windows を実行しているコンピューターがドメインのメンバーであるかどうかを確認する方法は?
(開発には Borland C++ 6 を使用しています)