GUIでルートサービスを開始する方法

GUIでルートサービスを開始する方法

そのため、Linux環境でGUIアプリケーションをrootとして実行するのは悪い考えであることがわかります。のようです。それが実際の作業を行います。

プログラム技術に精通していないLinux環境のデスクトップユーザーを対象としています。私は彼らにコマンドラインを開き、コマンドを実行してプログラムを起動するように要求したくありません。メニュー項目(または.desktopファイル)をクリックしてプログラムを実行できる必要があります。したがって、GUIプログラムはルートプロセスを開始する必要があり、その逆も同様です。もちろん、管理者パスワードを入力する必要がありますが、配布に拘束されない安全な方法でそれを許可する方法はわかりません。

バックアッププログラムなので、ソースドライブのパーティションをコピーするには、ターゲットドライブをパーティション化する必要があります。これにはroot権限が必要です。この手順を完了したら、パーティションをマウントしてマウント解除して、ソースドライブからターゲットドライブにファイルをコピーします。プログラムはパッケージマネージャを介してインストールされ、おそらく少なくとも最初のインストール時に管理権限があります。

GUIプログラムがroot権限を持つデーモンを安全に実行できるようにする方法は?

注:重要な場合、私が使用する言語はPython 3です。

答え1

簡単です。プログラムを2つの部分に分けてください。

1つ目はサーバー/サービスとそのデーモンです。これは独立してインストール可能で、ホストが使用するすべてのプロセスマネージャ(systemd、upstart、initdなど)に統合する必要があります。

その後、GUIプログラムがあります。ローカルコンピュータ(ループバックを使用)またはデーモンを実行しているリモートホストのネットワーク経由で接続するように設定します。

これの例については、mysqlサーバーとmysql-workbenchを確認してください。 2つの完全に独立したアプリケーション、つまりルートを必要としないGUIとルートが必要なサービスです。

答え2

root権限で作業を開始する必要がある場合は、「sudo」を使用できます。 GUIプロセスを実行している特定のユーザーIDが、これらのパラメーターを使用して特定のrootコマンドを実行できるように構成できます。

関連情報