実行ファイルが失敗するのではなく、sudoで実行されたときにプログラムでDISPLAYを設定する方法はありますか?

実行ファイルが失敗するのではなく、sudoで実行されたときにプログラムでDISPLAYを設定する方法はありますか?

Linux(Ubuntu)でsudoコマンドを使用して端末でGUIアプリケーションを実行すると、次のようにQTエラーでアプリケーションが失敗します。

sudoのQTアプリケーション

試してみると、ほぼすべてのアプリが失敗します。以下はFirefoxの例です。

Firefox sudo

sudo/root にはデフォルトで DISPLAY がないので、次を参照できます。root以外のユーザーでGUIアプリケーションを実行する

アプリケーションが表示されないことを認識し、プログラムで設定できますか?

ベストアンサー1

あなたはただsudo言わなければなりません今後ルートとして生成されるプロセスに既存の環境変数を追加します。--preserve-env=listのオプションを参照してくださいman sudo

また、firefox質問なしでrootとして実行してください。とても厳しいです。

いいえ、そうしないでください。

この方法で解決しようとしている問題が何であれ、ブラウザをrootとして実行する理由はまったくありません。〜しなければならないこの問題はさまざまな方法で解決できます。

cmakeそして江戸同様ですcmake-gui。ソフトウェアをrootとしてビルドしないでください。ルートとしてビルドする必要がある場合は、何か間違っています。あなたが持つソフトウェアをrootとしてビルドするには(必ずしもそうではありませんが、一部のソフトウェアは正しく作成されません)欲しくないcmakerootとして実行する必要がありますcmake-gui

したがって、sudoの悪いユースケースです。

おすすめ記事