sudo vs gksudo. Fark?


37

Arasındaki fark nedir sudove gksudo?


1
İyi soru. Şimdi Linux öğreniyorum (Klavye düzenimi henüz bulamadığımı görebilirsiniz) Haha!
r0ca

Yanıtlar:


27

sudokomut satırında parolayı sorar ve bunun gksudoiçin bir iletişim kutusu açılır.


6
gksu (do) ayrıca, su (do) 'nun kendisinden ayrı olarak, hangi çevresel değişkenlerin çocuğa geçeceği konusunda kendi yapılandırmasına sahiptir. Örneğin, sudoers config dosyanız! Keep_env'yi belirtirse, $ DISPLAY eksikliği grafiksel uygulamaların çalışmasını engelleyebilir, ancak gksudo çalışmalıdır. Bazı detayları git.debian.org/?p=users/kov/gksu-polkit.git;a=blob;f=common/… veya live.gnome.org/gksu adresinde bulabilirsiniz .
efemient

@ephemient Öyleyse grafik bilgi isteminin yanında, sudo -Eeşittir gksudo?
isomorphismes

3
Aşağıdaki cevap çok daha üstün görünüyor superuser.com/a/726249/112542
johny neden

4
Bunun önemli bir fark olmadığını vurgulamak istiyorum ve bu cevap yeni başlayanlar için oldukça yanıltıcı. Buradaki en büyük fark burada açıklanmaktadır: askubuntu.com/a/11766/81034 ve aşağıdaki cevap (@johnywhy'nin buna bağlı olduğu) buna biraz nüans eklemek için bunun ötesine bir adım atıyor. Lütfen bu yanıltıcı cevaba dayanmak yerine askubuntu sorusunu okuyun.
sundar - Monica,

31

gksudobir GTK tabanlı bir önyüz sudo(btw, kdesudobir QT tabanlı önyüzü), bununla birlikte (varsayılan) kolları daha çevresel değişkenler ( HOME, XAUTHORITYdaha vs.) sudobu şekilde kök Daha Güvenli olarak çalışan komutları adrestir.


Görebildiğim kadarıyla sadece @Logics cevabı yeterince doğru (@Ignacio Vazquez-Abrams tamamlanmadı). @Davros @knitti answer / comments için lütfen kaçınılması gereken açıklama: (Lütfen gerekmediğinde lütfen kaldırın / düzenleyin):

  1. Her iki komut da gerçekte temsil sudoedilmekle birlikte, kullanılan UI iki komutun tek farkı DEĞİLDİR.
  2. GUI programını çalıştırmak, gk / kdesudo kullanmanız gerektiğindeki tek durum DEĞİLDİR, bunun yerine komutun ana dizininize dosya yazıp yazmayacağını ( HOMEortam değişkeninin işaret ettiği yere yazıp yazmadığını) belirleyemediğinizde gk / kdesudo kullanmalısınız . sudobazı sistemlerde ve durumlarda komut). Tüm GUI uygulamaları ana dizininize yazmaz ve CLI uygulamalarının tümü yazmaz , bu nedenle komut türü kilit nokta değildir.
  3. Sen hala edebilirsiniz kullanmak sudoroot olarak (örnek olarak uygulamalar konsol çıktısını görüntülemek için) fırlatma GUI uygulamalarına komutu, ancak sap gerekir HOME(ve bu şekilde diğerlerinin XAUTHORITY, DISPLAYvb giriş-yöntem ile ilişkili-malzeme,) çevresel değişkenler doğru öylesine başlatılan uygulamanın başarısız olmayacağını, işlevselliğini yitirmeyeceğini veya çok kötü şeyler yapabileceğini. Aşağıdaki kullanmak için benim geçerli tavsiyemsudo
    • sudo -H <rest of the command>
      • ( sudobölüm 8 kılavuz sayfasından) -H ( HOME )Seçenek, güvenlik politikasının, HOMEortam değişkenini, şifre veritabanında belirtildiği şekilde hedef kullanıcının ana dizinine (varsayılan olarak kök) ayarlamasını ister. Politikaya bağlı olarak, varsayılan davranış bu olabilir.
      • Bu en azından sudoarayanın giriş dizininde dosya oluşturulmasını engellemelidir.
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • Bu, <GUI programı> nın bir TTY terminalinde çalıştırılmasını ve masaüstü ortamınızda görüntülenmesini sağlamalıdır.
  4. sudoKomutun davranışı tüm sistemlerde aynı değildir ve visudokomut aracılığıyla yapılandırılabilir , sudoers(5)daha fazla bilgi için lütfen manpage'i kontrol edin .

2
tüm oyları alandan çok daha iyi bir açıklama gibi görünüyor. daha ayrıntılı, daha doğru. OP bile "Hepsi bu mu?" diye yanıtladı. tüm oyları alan cevaba.
johny, neden

2

Grafik programları çalıştırmak için düzenli sudo kullanmak, nadiren bazı durumlarda karışık izinlere neden olur. Güvenli olmak için gksudo (veya uygunsa kdesudo) bir GUI ile programları çalıştırmak için kullanılmalıdır. Bunun gerçekten bir hata olduğunu düşünüyorum, ancak gksudo'nun X sunucu değişkenlerini anladığını ve sudo'nun muhtemelen sorunlara yol açmadığı açıklamalarını duydum. Sadece bir ipucu olarak; grafik programları root olarak çalıştırıyorsanız, çalıştırmak istediğiniz her program için bir terminal açmak yerine, ALT-F2 (aynı anda alt ve fonksiyon tuşu 2) yazın, sonra açılan "gksudo program "tırnak ve program olmadan çalıştırmak istediğiniz uygulama tarafından değiştirilir.


2

sudo, ayrıcalıklara sahip mevcut kullanıcı olarak çalışır. Bu, grafik uygulamaları çalıştırırken belirli kullanıcı yapılandırma dosyalarının (grafik ortamınızla ilgili) dosya izinlerini değiştirme potansiyeline sahiptir. Bu uygulamaları sudo olmadan tekrar çalıştırırken ortaya çıkan hataları bulabilirsiniz.

gksudo (KDE altında kdesudo), uygulamaları root kullanıcı olarak çalıştırır, bu nedenle dokunulan tüm dosya izinleri, kullanıcıların dosyaları değil, kök dosyalarındadır. Bu uygulamaları gksudo / kdesudo olmadan tekrar çalıştırmak her zaman beklenen davranışa sahip olacaktır.


0

Mevcut cevap yanlış. Göre Ubuntu RootSudo wiki :

"Grafik uygulamalarını root olarak başlatmak için asla normal sudo kullanmamalısınız. Bu gibi programları çalıştırmak için gksudo (Kubuntu'da kdesudo) kullanmalısınız. Gksudo sets HOME = ~ root kullanmalısınız. dizin kök tarafından sahip olunan. (AFAICT, gksudo ve sudo ile başlatılan sürecin ortamı hakkında özel olan tek şey bu). "


2
Dört tane daha cevap var; hangisi yanlış? Cevabınız, esasen Davros'unkiyle aynı değil mi?
fixer1234

Doğru olarak işaretlenmiş cevaba atıfta bulundu. Evet, Davros da aynı şeyi söylüyor, ancak bunu bir kaynağa bağ içermediği için ekledim.
eugene1832

1
Daha iyi bir çözüm, bu cevaba bir düzenleme önermek olacaktır. Bir cevabın iyileştirilmesi kabul edilebilir (+2 rep), oysa temel olarak bir cevabı çoğaltmak aşağı oylar çekebilir.
fixer1234
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.