Sudo cmd
とgksu cmd
の違いは、違いと同じですSudo -i
とSudo -s
でシェルを開始する間?
...または別の言い方をすれば、Sudo cmd
はSudo -i cmd
と同じです
およびgksu cmd
はSudo -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
と-s
seemがと同じことをしていることに気付きました_ afaict _環境の問題...
しかし、私は過負荷になったので、ここで質問をしました。
PS ..私の質問はSudovsgksuではありません
..詳細:IsgksuはSudo -sと同じ
..そしてそうでない場合、それらはどのように違いますか?
gksu
は基本的にSudoのグラフィカルフロントエンドであり、X端末エミュレータを実行し、suを直接使用せずにグラフィカルコマンドを実行できます。これは事実上、スーパーユーザーコマンド用のGTK +スキンにすぎません。
したがって、GUIベースのプログラムをルートとして実行する場合は、コンソールプログラムをルートとして呼び出すために使用されるgksu cmd
ではなく、Sudo cmd
を使用して呼び出します。
Sudo -i
は、ログイン環境をターゲットユーザーにリセットします(この場合、root)。主に、HOME
環境変数が変更されるため、ターゲットユーザーの~/.bashrc
がロードされます。
したがって、gksu
はSudo -i
に似ています。つまり、$HOME
はrootユーザーに切り替わります。
これは実際には答えではありませんが、興味深いことがあります...
これらのsuコマンドで何が行われるのかを理解し始めました。
しかし、私はまだそこにいるわけではありません... gksu
...を使用しています。これは私にとって理解の旅です...そしてgksu
はkonsole
または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の答えは確かですこれについて一生懸命考えさせてくれました! ...コーヒーが必要です!!
Sudoはコマンドラインアプリ用、gksu/gksudoはグラフィカルアプリ用