gksudo
sudo
の GTK ベースのフロントエンドです (ところで、kdesudo
は Qt ベースのフロントエンドです) が、(デフォルトで) より多くの環境変数を処理します (HOME
、 XAUTHORITY
など) sudo
より したがって、root としてコマンドを実行する方が安全です。
私が見る限り、@Logicsの回答だけが十分に正しいです(@Ignacio Vazquez-Abramsは完全ではありません)。以下は、@Davros @knitti の回答/コメントへの明確化を避けるための説明です (不要な場合は削除/編集してください):
<オール>sudo
を表していますが、 2 つのコマンドの違いは、使用される UI だけではありません。 HOME
環境変数が sudo
を指す 一部のシステムおよび状況ではコマンド)。 すべての GUI アプリがホーム ディレクトリに書き込み、すべての CLI アプリが書き込みを行うわけではありません であるため、コマンドの種類は重要なポイントではありません。 sudo
を使用 root として GUI アプリを起動するためのコマンド (例としてアプリのコンソール出力を表示するため) ですが、 HOME
を処理する必要があります (および XAUTHORITY
などのその他 、 DISPLAY
、入力方法関連のものなど) 環境変数を正しく設定して、起動したアプリが失敗したり、機能を失ったり、本当に悪いことをしたりしないようにします。以下は、sudo
を使用するための現在の推奨事項です。 sudo -H <rest of the command>
- (
sudo
から) セクション 8 マニュアル ページ)-H ( HOME )
オプションは、セキュリティ ポリシーがHOME
を設定することを要求します 環境変数を、パスワード データベースで指定されたターゲット ユーザー (デフォルトでは root) のホーム ディレクトリに追加します。ポリシーによっては、これがデフォルトの動作になる場合があります。 - これにより、少なくとも
sudo
でファイルが作成されるのを防ぐ必要があります 発信者のホーム ディレクトリ
- (
sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
- これにより、
が TTY ターミナルで実行され、デスクトップ環境に表示されます
- これにより、
sudo
の動作 コマンドは すべてのシステムで同一ではありません visudo
で設定できます コマンド、sudoers(5)
をチェックしてください 詳細についてはマンページをご覧ください。
sudo
コマンドラインでパスワードを要求し、gksudo
そのためのダイアログ ボックスが表示されます。
通常の sudo を使用してグラフィカル プログラムを実行すると、まれに一部のファイルのアクセス許可が台無しになります。安全のために、GUI でプログラムを実行するには gksudo (または必要に応じて kdesudo) を使用する必要があります。これは本当にバグだと思いますが、gksudo は X サーバー変数を認識し、sudo は問題を引き起こさないという説明を聞きました。ヒントとして。グラフィカル プログラムをルートとして実行している場合は、実行するプログラムごとに 1 つのターミナルを開く代わりに、ALT-F2 (alt とファンクション キー 2 を同時に) を入力し、ポップアップするダイアログ ボックスに「gksudo」と入力します。 programme" を引用符なしで、プログラムを実行したいアプリケーションに置き換えます。