0

私はPython3とQt5を使ってLinuxアプリケーションを作っています。ユーザーがこのアプリケーションをインストールすると、/usr/shareフォルダにいくつかのファイルが作成されます。ファイルを作成するには、アプリケーションにrootアクセス権が必要です。Linuxアプリケーションにrootアクセスする方法

私は、アプリケーションにユーザーにプロンプ​​トボックスを表示させ、ユーザーがルートパスワードを入力してアプリケーションにrootアクセスできるようにする予定です。しかし、私はそのパスワードを使ってアプリケーションにrootアクセスを与える方法を知りませんか?

+1

通常、OSに仰角を入力するよう依頼します。昇格したら、ファイルをコピーしてサービスを変更するだけです。あなたは決してユーザーのパスワードを処理しません。 – jww

+1

プログラムとしてインストールするのではなく、rootとして実行する必要があります。ユーザーに 'sudo install'を実行させ、そうでなければ役に立つエラーメッセージで失敗させてください。 – rodrigo

答えて

1

これは痛みの世界です。通常のユーザーが特権ユーザーとして特定のアクションを実行するアプリケーションを使用することは確かに可能ですが、これを行う必要があることから、インストールとメンテナンスが適切に行われていないことが示唆されます。

権限を昇格させるには、 "sudo"が適切でないと仮定すると(この場合はそうでないかもしれません)、ジョブを実行するオペレーティングシステムツールを使用するか、実行可能ファイルにsuid属性を持つプログラムのヘルパーを実装することができます。

私はすべてのLinuxシステムが "su"にアクセスできると期待していますが、標準のsuにはGUIプログラムのドラッグであるグラフィカルインタフェースはありません。アプリケーションでユーザーの資格情報を収集してsuに渡すか、gksuなどのさまざまなグラフィカルsu-ty​​peユーティリティのいずれかを使用できます。もちろん、それらのユーティリティがあなたのプラットフォームで利用可能な場合にのみ動作します。

特権を必要とする作業を処理するsuidパーツでプログラムを提供するルートに行く場合は、セキュリティについて厳重に注意する必要があります。つまり、資格情報を収集する方法、侵入者が彼らはしないでください。

まあ、それはワームの缶です。 rootとして実行する必要があるインストールモジュールやメンテナンスモジュールをアプリケーションに提供するほうがずっと良いと思います。そうすれば、すべての困難な作業はプラットフォームによって行われます。

関連する問題