web-dev-qa-db-ja.com

Sudoとgksuの違いは、Sudo -iとSudo -sの違いと同じですか?

Sudo cmdgksu cmdの違いは、違いと同じです
Sudo -iSudo -sでシェルを開始する間?

...または別の言い方をすれば、
Sudo cmdSudo -i cmdと同じです
およびgksu cmdSudo -s cmdと同じですか?

編集: buntu Documentation Page で読んだ内容に基づく:

You should never use normal Sudo to start graphical applications as root.  
You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets  
HOME=~root, and copies .Xauthority to a tmp directory. This prevents files  
in your home directory becoming owned by root.  
(AFAICT, this is all that's special about the environment of the started   
 process with gksudo vs. Sudo).

"AFAICT"は、それ以上何もないという完全な自信を本当に与えてくれません。


(..a belateUPDATE:今日(2か月後)彼のコマンドをテストしました:
"これにより、ホームディレクトリ内のファイルがルートに所有されることを防ぎます。"
Sudo/gksuで作成したすべてのファイルはすべて「root」が所有し、グループは「root」でした。)


info Sudoの一部を読んで、-i-sseemと同じことをしていることに気付きました_ afaict _環境の問題...
しかし、私は過負荷になったので、ここで質問をしました。

PS ..私の質問はSudovsgksuではありません
..詳細:IsgksuSudo -sと同じ
..そしてそうでない場合、それらはどのように違いますか?

26
Peter.O

gksuは基本的にSudoのグラフィカルフロントエンドであり、X端末エミュレータを実行し、suを直接使用せずにグラフィカルコマンドを実行できます。これは事実上、スーパーユーザーコマンド用のGTK +スキンにすぎません。

したがって、GUIベースのプログラムをルートとして実行する場合は、コンソールプログラムをルートとして呼び出すために使用されるgksu cmdではなく、Sudo cmdを使用して呼び出します。

16
user2405

Sudo -iは、ログイン環境をターゲットユーザーにリセットします(この場合、root)。主に、HOME環境変数が変更されるため、ターゲットユーザーの~/.bashrcがロードされます。

したがって、gksuSudo -iに似ています。つまり、$HOMErootユーザーに切り替わります。

10
Kees Cook

これは実際には答えではありませんが、興味深いことがあります...
これらのsuコマンドで何が行われるのかを理解し始めました。
しかし、私はまだそこにいるわけではありません... gksu...を使用しています。これは私にとって理解の旅です...そしてgksukonsoleまたはkateに有効です。またはmust KDEバリアントkdesu。を使用します。

ここに、私が試したいくつかのテストの結果を示します。

From user fred's terminal, launch gnome-terminal

su style   resulting            custom   (ls)   new file
command    Prompt               Prompt   home   ownership
---------  -------------------- -------  -----  ----------
Sudo      .root@DT:~#           fred's   fred   root
gksu       root@DT:/home/fred#  root's   fred   root
Sudo -i    root@DT:~#           root's   root   root
Sudo -s   .root@DT:~#           fred's   fred   root

これらの結果は、 buntu Documentation Page とは一致しません。

 This prevents files in your home directory becoming owned by root

更新:Sudoおよびgks起動されたターミナルのXAUTHORITY env変数は異なります(Ubuntu Documentation Page)..

Sudo    #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
Sudo -i #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
Sudo -s #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
gksu    #### XAUTHORITY=/tmp/libgksu-xR2OGn/.Xauthority   

これは、gksuが質問で参照したSudo -sコマンドとはまったく異なることを示しています...したがって、最初の質問に答えます(まだあいまいな方法で)...そしてChrisの答えは確かですこれについて一生懸命考えさせてくれました! ...コーヒーが必要です!!

5
Peter.O

Sudoはコマンドラインアプリ用、gksu/gksudoはグラフィカルアプリ用

3
karthick87