呼び出しコードにスーパーユーザー特権の昇格が必要かどうかをプログラムでどのように確認できますか?

呼び出しコードにスーパーユーザー特権の昇格が必要かどうかをプログラムでどのように確認できますか?

他の人にコードを提供するときは、すべての高度関連コードを削除することをお勧めします。つまり、(または)の代わりにapt update提供します。ただし、UNIX ベースの特権の昇格に初めて遭遇する人にとって、これはあらゆる種類の問題を引き起こす可能性があります。私と私が出会った他の多くは、上記のユーティリティを使ってすべてをスーパーユーザーとして実行しました。sudo apt updatesu -c 'apt update'

また、プログラムで特定のコマンドを呼び出す場合、一部のシステムではスーパーユーザー特権の昇格が必要ですが、他のシステムでは必要ありません。これは、特権エレベーターを含めると、スーパーユーザーが所有してはならないものを所有し始めるため、一部のシステムの構成が中断される可能性があることを意味します。flatpakはい一つこれのいくつかの例(壊れた構成を除く) - インストールの50%はほとんどのコマンドを呼び出すために必要な特権の昇格を使用し、残りの50%はデフォルトでは使用しませんでした。

私の経験では、Windows 7+のUACの上昇が非常にうまく機能しているようであることを考えると、極端な場合でもこの問題を解決する包括的な方法がないようで、かなり驚きました。

したがって、コマンドを呼び出すためにユーザー権限の昇格が必要かどうかをプログラムで決定する方法を知っている人がいるかどうかを尋ねています。特定のコマンドが呼び出されたときにユーザーを切り替えると、ユーザーの動作がそのユーザーに影響を与える可能性があることを理解していますが、そのような場合は、ユーザーがコマンドを制限的に呼び出すことができるとは想像できません(無用物にならないように)。


https://unix.stackexchange.com/search?q=ok+whether+superuser+elevation+required何も返さないけどコマンドでroot権限の昇格が必要かどうかをコードでどのように確認できますか?そしてコマンドを実行するために「sudo」権限が必要かどうかを確認する方法は?彼らは私が知りたいことが何であるかを尋ねているようで、両方で利用可能ないくつかの答えは、言語に依存しないソリューションを提供するのではなく、問題を回避するためのシェルスクリプトコードに焦点を当てたようです。

答え1

したがって、コマンドを呼び出すためにユーザー権限の昇格が必要かどうかをプログラムで決定する方法を知っている人がいるかどうかを尋ねています。特定のコマンドが呼び出されたときにユーザーを切り替えると、ユーザーの動作がそのユーザーに影響を与える可能性があることを理解していますが、そのような場合は、ユーザーがコマンドを制限的に呼び出すことができるとは想像できません(無用物にならないように)。

aptそのような方法は存在しません。代わりに、rootとして実行する必要があるのは「管理者コンテキスト知識」ですflatpak。他のプログラムは、必要に応じて特権の昇格を要求します。

私の経験では、Windows 7+のUACの上昇が非常にうまく機能しているようであることを考えると、極端な場合でもこの問題を解決する包括的な方法がないようで、かなり驚きました。

UAC特権の昇格は、linux / freedesktopのsudoまたはpolicykitに対応するWindows GUIです。

Windowsでは、プログラムが管理者権限を要求しない限り、プログラムに管理者権限が必要かどうかはわかりません。

ただし、Windowsグラフィックシェルには、実行可能ファイルへのリンクを「別のユーザーとして実行」としてマークする方法があります。ただし、これは実行可能ファイルを検索するために特権の昇格が必要とは異なります。

関連情報