Sudo ve gksu arasındaki fark, sudo -i ve sudo -s arasındaki farkla aynı mıdır?


26

Arasındaki fark olan sudo cmdve gksu cmd, farkı aynı
olan bir kabuk başlangıç arasında sudo -ive sudo -s?

... ya da başka bir deyişle,
var mı sudo cmd aynı sudo -i cmd
ve gksu cmdaynı sudo -s cmd?

EDIT: Bir Ubuntu Doküman Sayfasında okuduklarım üzerine yazdığı şeye dayanarak :

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" beni gerçekten hiçbir şey daha olduğunu tam güven vermek doent.


( ..a gecikmiş bir GÜNCELLEME : Bugün anısına (2 ay sonra) test ettim:
“Bu, ev dizininizdeki dosyaların root'a ait olmasını önler.”
sudo / gksu aracılığıyla oluşturulan tüm dosyaların tümü " root " a ait, ve grup " kök " idi.)


Ben kısımlarını okudum info sudove fark -ive -s görünmek aynı şeyi yapıyor olması AFAICT çevre sorunu ...
ama burada sorumu sordum ben .. aşırı çarptı.

PS .. Sorum sudo vs gksu hakkında değil
.. Daha fazlası: gksu sudo -s ile aynı mı
… ve değilse nasıl farklılar?

Yanıtlar:


16

gksuTemel olarak, bir X terminal emülatörü çalıştırmaya ve doğrudan su kullanmaya gerek kalmadan grafiksel komutun çalıştırılmasına izin veren grafiksel bir ön uçtur. Süper kullanıcı komutları için sadece bir GTK + kaplamadır.

Dolayısıyla, bir GUI tabanlı programı root olarak çalıştırmak isteseniz, konsol programlarını root olarak çağırmak için kullanılan gksu cmdyerine onu sudo cmdçağırırsınız.


1
Bir graphicalön uç ile ne demek istediğinizi bilmiyorum ... bir GTK uygulaması, sudo veya gksu ile başlatılmasından bağımsız olarak oldukça mutlu çalışıyor ... ama progamı farklı bir ortamda çalıştırıyor ... (I ' neden soruyu sorduğumu belirtmek için soruma biraz daha ekleyeceğim ...
Peter.O

2
Sonunda ne demek istediğini anladım graphical frontend. Terminali her zaman sudo / gksu'yu çalıştırmak için kullanırım ... ama kaba kuvvet ruhu içinde düşünebildiğim her şeyi denemeye çalışmayı denedim sudove gksuAlt + F2 ... Bingo! .. sudoboşluğa kayboldu, ama gksuvesile ile yükseldi ve bana (efsanevi) sundu graphical forntend... Bu Synaptic Paket Yöneticisi vb. için
görünenle

PS .. Yeni bir terminalde gksu'yu yeni denedim .. Parola iletişim kutusu da orada ortaya çıkıyor ... Daha önce görmüş olmalıyım ama parola ile ilişkilendirilmiş olmalı (yalnızca bir GUI iletişim kutusu olduğu gerçeğini değil) . Terminal komutu ... ("Görüyorum". kör adam dedi :) ... Teşekkürler ...
Peter.O

. daha sonra, cevabınızla desteklenerek, gksuXAUTHORITY klasörünü değiştiriyor gibi görünüyor , ve sudohiç ... Ne olduğundan emin değilim, ama önemli görünüyor! ... Bu benim ikilemimi çözdü ... (aşağıdaki
cevabımdaki

10

sudo -ioturum açma ortamını hedef kullanıcıya sıfırlar ( bu durumda root ). Temel olarak, HOMEortam değişkeninin değişmesi, yani hedef kullanıcının ~/.bashrcyüklendiği anlamına gelir .

gksubu nedenle, bunun gibi , kök kullanıcıya sudo -igeçer .$HOME


Teşekkürler KC .. Bana mantıklı geliyor (yavaş yavaş, yavaşça) ... ama açıkça görünüyor ki, XAUTHORITY'nin bir kopyasını oluşturarak ve (?) 'Den çalışarak, gksu'yu oldukça ayrı bir forma sokuyor. Bahsettiğim türlerden herhangi biri sudo... ve bunun farkına varmak , Aha! benim için bir an ... Sonuç: GUI uygulamaları için gksu kullanın! .. ama çözülmemiş bir quandry ile bırakıldım ... gksu sadece GTK uygulamaları için geçerli mi , yoksa bir KDE GUI uygulaması çalıştırırken gksu kullanmak mükemmel mi?
Peter.O

5

Bu gerçekten bir cevap değil, ama biraz ilgi çekici olabilir ...
Bu su komutlarıyla neler olup bittiği hakkında bir fikre sahip olmaya başladım,
ama henüz tam olarak oralarda değilim ... Kullanıyorum gksu. .. Bu benim için anlamanın daha bir yolculuktur ... ve eğer anlamak wan't gksuiçin geçerlidir konsoleya kateya zorundadır Ben KDE varyantı kullanın kdesu..

İşte şimdi denediğim bazı testlerin sonuçları.

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

Bu sonuçlar , yazdığı Ubuntu Dokümantasyon Sayfasına katılmıyor :

 This prevents files in your home directory becoming owned by root

GÜNCELLEME: sudo ve gksu çağrılan Terminalleri enviçin XAUTHORITY değişkenleri farklıdır ( Ubuntu Belgelendirme Sayfasında belirtildiği gibi ).

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   

Bu gksu, kesinlikle sudo -ssoruya atıfta bulunduğum komutla aynı olmadığını gösteriyor ... ve bu sebeple benim oturacak sorumu (hala belirsiz bir şekilde) ortaya çıkarıyor ... ve Chris'in cevabı kesinlikle bu konuyu düşünmeme neden oldu! ... Bir kahveye ihtiyacım var!!


3

sudo komut satırı uygulamaları içindir, grafikseller için gksu / gksudo


Teşekkürler, sorum benim konuyu anladığım kadar net olmayabilir ... Öncelikle her iki komuta da sahip olmak için gerekli olan özel farkın ne olduğunu bulmaya çalışıyordum. bu şekilde gksuXAUTHORITY geçici kopyadan eserler .. ben XAUTHORITY özel olarak ele alınması gereken neden ayrıntılarına net değilim, ama onun davranışını ayıran önemli bir şeydirsudo
Peter.O
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.