gksudoとgksuの違いは何ですか?



What Is Difference Between Gksudo



解決:

両方のファイルが同じ場所を指しています。

$ ls -l / usr / bin / gksudo lrwxrwxrwx 1 root root 4 2010-09-27 18:23 / usr / bin / gksudo-> gksu

..。gksudoはにシンボリックリンクされていますgksu。しかし、これは彼らが NS 同じこと、それから遠く離れています。



アプリケーションは、それを実行するために使用されるコマンドを検出できます。これは通常ですCスタイルの言語のargv [0]またはボーンスタイルのシェルスクリプトで$ 0。アプリケーションはそれを見ることができ、この場合、実際にはそれがどのように機能するかを変更します。これの最初の兆候はman gksuページ:

gksuはsuのフロントエンドであり、gksudoはsudoのフロントエンドです。

ソースを見ると(apt-get source gksu)forrun_mode、これをどのように検出するかがわかります。



{/ * gksu_sudo_runをサポート* / gchar * myname = g_path_get_basename(argv [0]); if(!strcmp(myname、 'gksudo'))run_mode = SUDO_MODE; g_free(myname); }

これをオーバーライドできます--su-mode /-wと--sudo-mode /-S引数(したがって、gksudoシンボリックリンク...しかし、それはあなた次第です。

これらの「モード」が実際にどのように異なるかを知りたい場合は、少しだけエスケープします。gksu。あなたはそれに従う必要がありますlibgksu。これは、システムに渡す前に実際に権限をチェックするライブラリです。

モードが指定されていない場合(たとえば、引数なしのgksu)到達するまでにlibgksu、Gconfをチェックし(Stefanoが指摘しているように)、それでも決定できない場合は、デフォルトであなたのモード。




Ubuntu(!)では、違いはありません。

  • gksuは通常 rootユーザーにログインします このセッションでアプリを実行します。ただし、Ubuntuでは、デフォルトで「sudoモード」を使用します。これは実行と同等です。gksudo。これは、ubuntuではデフォルトでrootとしてログインできないためです。

  • gksudoは、グラフィカルに同等のものですsudo(そして、Oliが指摘しているように、gksuへの単なるシンボリックリンク)

gksuのgconfエントリから:

代替テキスト

さらに、sudoとgksudoの違いについて:

通常のsudoを使用してグラフィカルアプリケーションをrootとして起動しないでください。このようなプログラムを実行するには、gksudo(Kubuntuではkdesudo)を使用する必要があります。 gksudoはHOME = 〜rootを設定し、.Xauthorityをtmpディレクトリにコピーします。これにより、ホームディレクトリ内のファイルがrootによって所有されるのを防ぎます。 (AFAICT、これはgksudoとsudoで開始されたプロセスの環境について特別なことです)。
- (Chris Wilson経由のコミュニティドキュメントから)


これは古いスレッドであることは知っていますが、微妙ではありますが本質的な違いについてお話しするように求められましたgksuとgksudo。

私は長く懸命に見てきましたが、どこにも文書化された違いを見つけることができません、それでもそれは存在します。なぜ違いがあるのか​​もわかりません。この違いのためにいくつかのシステムファイルを誤って削除したとき、これは難しい方法でした(Ubuntuフォーラムのスレッドで説明されています)—私は使用していましたgksuですが、それ以来、私は常に使用するようにしていますgksudo。

要約すると、これを試してください。

  1. いくつかのフォルダに3つのファイルを作成します。
    タッチabc
    abc.tmpに触れます
    abctmpに触れる
  2. 次の6つのコマンドを実行します。最初の5つは、同じ(期待される)結果をもたらします(つまり、abc.tmp)一方、6番目には追加のファイルが含まれています(abctmp)すべきではないこと。

    探す 。 -regextype posix-egrep -regex '。* 。tmp'-print sudofind。 -regextype posix-egrep -regex '。* 。tmp'-print gksudo --find。 -regextype posix-egrep -regex '。* 。tmp'-print gksudo --su-mode --find。 -regextype posix-egrep -regex '。* 。tmp'-print gksu --sudo-mode --find。 -regextype posix-egrep -regex '。* 。tmp'-print gksu --find。 -regextype posix-egrep -regex '。* 。tmp'-print

交換するときの問題を想像してみてください-で印刷-で削除findコマンド(これはまさに私に起こったことであり、一部のシステムファイルが削除されます)。

だから、使ってください代わりにgksudogksu。