問題タブ [privilege-elevation]

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.

0 投票する
1 に答える
8446 参照

c - system()で管理プログラムを呼び出すsetuid-root Cプログラム内にsetuid(0)が必要なのはなぜですか?

私は誰かのために汚いLinuxハックをしなければならなかったので、彼らはcupsenable printername非rootユーザーである間にshellコマンドでプリンターを起動することができました。構文全体をrootとして使用できるようにしたくなかったcupsenableので、入力をサニタイズしてargv[1]を呼び出すCラッパーを作成しましたsystem("cupsenable sanitizedprintername")

プログラムをsetuidrootにしましたが、それでもcupsenable「permissiondenied」で失敗しました。それから私setuid(0)は前に電話を入れました、そしてsystem()、見よ、それはうまくいきました。

ユーザーがプリンターを制御できるようにするためのより良い方法があるという問題は無視してください。おそらくもっと良い方法があります。私が興味を持っているのは、vs。vs chmod u+s.の複雑さsetuid(0)ですsystem()。なぜそのように振る舞ったのですか?

0 投票する
2 に答える
762 参照

windows - UACと高度プロンプトパターン

UACと特権の昇格に関するいくつかの質問を読みましたが、満足のいく/包括的な答えは見つかりませんでした。

このシナリオがあります。Windows6以降では、ユーザーが構成ウィンドウを開いたときに、タスクを完了するために特権の昇格が必要な場合にのみBCM_SETSHIELD、[OK]ボタンにシールド()を表示する必要があります。--Windows UIでは、UACが無効になっている場合でも、「管理タスク」のシールドが常に視覚化されていることを知っていますが、顧客からこの特定の要求がありました。

アイコンを表示するために、この条件をドラフトしました。

  1. ユーザーに管理者権限がない、
    または
  2. 現在のプロセスにはTOKEN_ELEVATION_TYPE == TokenElevationTypeLimited

条件#1は単純です。ユーザーが管理者権限を持っていない場合は、UACに関係なく常に昇格が必要です。#2は、ユーザーが管理者権限を持っていることを意味し、その他の値はTOKEN_ELEVATION_TYPE昇格が不要であることを意味します。

本当に簡単ですか?私は何かが足りないのですか?そして-このトピックに関して文書化された、またはよく知られているパターンはありますか?

0 投票する
1 に答える
780 参照

linux - sudo で実行されるプログラムからユーザーの ssh キーにアクセスする方法は?

ジレンマ: 私が取り組んでいる Linux プログラムは:

  1. git+ssh:// プロトコルで「パッケージ」を取得します (Git を使用)。
  2. その「パッケージ」をシステムにインストールします。

git+ssh が機能するためには、Git が私のキーを認識する必要があります。

「パッケージ」インストールの場合、プログラムにはスーパーユーザー権限が必要です。

制限: プログラム自体で特権を昇格 (sudo を呼び出す) しないでください。ユーザーは、sudo を使用して明示的に呼び出す必要があります。(ユーザーが root としてログインし始めている間にプログラムを実行する場合は無視しましょう — 彼がキーを正しくセットアップすると仮定します。)

問題は、sudo で呼び出されたプログラムからユーザー キーを使用して ssh アクセスを行う方法です。

0 投票する
2 に答える
113 参照

php - ユーザーができること(権限)を制御するクラスをどこに/どのように配置するのですか?

$_POST['action'].. に基づいて適切なクエリを実行するクラスを使用しています。例:

もちろん、ユーザーができないことをするのを防ぎたいと思います。たとえば、他の人の投稿を編集したり、まだ公開されていない場合にのみ投稿を編集できるなど、より複雑なことをしたりします。投稿が公開されると、彼はもう編集できなくなります (または、時間に基づいたものかもしれません)。

このチェックを my にどのように追加しますclass dataか? Zend_ACL について聞いたことがありますが、これはこの場合に有効ですか?

編集:特権を保存するためにデータベースを使用することは避けます

Edit2: 私はこれをしたいと思います: すべてのユーザーには「レベル」があります。レベル = 1 はあなたが管理者であることを意味し、レベル = 2 はあなたが編集者であることを意味し、レベル 3 = あなたが単純なユーザーであることを意味します。

そのため、各レベルでいくつかの権限が対応しています。これらの情報をどこに置くべきですか?

タイ

0 投票する
1 に答える
56 参照

security - 優れたサンドボックス フレームワークを探している

信頼できないコードをサンドボックス化する必要があるアプリケーションを開発しています。信頼できないコードが提供される形式は、それがかなり表現力豊かである限り、あまり重要ではありません。文字列を入力として受け取り、別の文字列を返す以外の外部通信は必要ないか、許可されるべきではありません。結果の実行がかなり遅くても問題ありません。私の最優先事項は、これを行うための安全な方法を見つけることです。

NaCl は有望に見えますが、まだあまり敵対的な注目を集めていません。さまざまな Java および JavaScript サンドボックスがかなり激しく攻撃されてきましたが、それらのすべてに最近、権限昇格の脆弱性がありました。

他に考慮すべきサンドボックス フレームワークはありますか? コードを監査することで自分自身が安全であることを確信できる、かなり単純な設計による安全なフレームワーク (NaCl に似ていますが、より成熟したフレームワーク) があることを願っています。これを行うと主張するpypy サンドボックスを調べています。しかし、これまでのところあまり注目されていないことは理解しています。plash のような OS 仮想化の追加レイヤーと組み合わせることで、リスクをいくらか軽減できますが、それらは複雑であり、脆弱性もある可能性があります。

0 投票する
1 に答える
531 参照

freepascal - Ubuntu の Lazarus アプリケーションで特権ダイアログをプログラムでトリガーする

私が父のために開発しているソフトウェアをインストールする父の仕事を楽にしたい。
このために、私は Lazarus を使用しています。特権エスカレーション ダイアログを起動するための API があるかどうかを知りたいです。

Google で提示するクエリを 1 つ特定するのは難しいようです。
「lazarus 権限昇格」は役に立ちません。
「lazarus 権限ダイアログ」も役に立ちません。

で実行するようにユーザーに依頼することは可能ですがgksudo、スクリプトやコマンドラインを使用することは避けたいと思います。

だから、どこを向くべきか少し迷っています。

0 投票する
1 に答える
748 参照

django - 作成/特権昇格に関するDjangoユーザーの資格

次の問題が発生しました:ユーザーにstaff-statusを付与し、ユーザーの作成を許可し、新しいグループの作成と資格の割り当てを許可しない場合でも、別のユーザーに「admin」-資格を割り当てることができるため、簡単に追加できます自分よりも多くの資格を持っているユーザー!カスタムユーザーモデル/ビューを提供せずにそれを回避する方法を見つけた人はいますか?

ご回答ありがとうございます。

0 投票する
1 に答える
5990 参照

c++ - CreateProecssAsUser 昇格された特権?

CreateProcessAsUser 関数でエラーが発生します。「要求された操作には昇格が必要です」と表示されます。できる限り最高の権限を与えたと思いました。誰か助けて?ありがとう

私のコードは次のとおりです。

0 投票する
1 に答える
3637 参照

winapi - プロセスからの管理者権限の削除

この素晴らしいMSDN の記事を参考にして、プロセスが昇格された管理者グループを使用しているかどうかを単純に確認し、AdjustTokenGroups()管理者グループを に設定することを最初に考えましたSE_GROUP_USE_FOR_DENY_ONLY。残念ながら、現在実行中のプロセスの管理者グループを変更することはできませんSE_GROUP_MANDATORY。これは、変更の対象外となる属性も持っているためです。

MSDN ドキュメントには、これについて次のように書かれています。

AdjustTokenGroups関数は、構造SE_GROUP_MANDATORY内の属性を持つグループを無効にすることはできません。代わりにTOKEN_GROUPS使用してください。CreateRestrictedToken

したがって、これを達成するために次のコードを実行しました。

ただし、新しいプロセスは通常のユーザーとしてではなく、管理者として実行されています。

どうすればそれを達成できますか?

0 投票する
1 に答える
1117 参照

installation - インストール中に Inno Setup に UAC プロンプトを強制的に表示させる

セットアップ中に特定のインストーラーを実行するために昇格された特権が必要な場合、Inno Setup に UAC プロンプトを表示させるにはどうすればよいですか? このインストーラーのインストールをスキップすることは重要ではありません。AfterInstall 関数を指定して、特権の昇格が必要かどうかをテストできることがわかりました (IsAdminLoggedOn()) が、このインストーラーを特定のユーザーとして実行するように UAC プロンプトを表示するにはどうすればよいですか?